由于微信小程序中eval被禁用了,所以这里就使用

1. 模块基本说明 此模块是使用JavaScript,栈,实现的计算器,可做数字(包含小数和整数)间的加,减,乘,除,括号,取余,等运算 实现方式:将用户输入的中缀表达式转为后缀表达式,通过栈来实现,得到最终结果 2. 起因

在做微信小程序开发时,需要实现一个计算机功能,原本在做web开发时,都是使用的eval直接把用户输入的字符串表达式进行执行的,结果发现在微信小程序里面无法执行eval方法 。然后想用Function进行构造,然后发现还是不被微信小程序执行。

最后在网上百度了下解决方案,找到个rpn.js可以实现,但是等我使用时却发现她对于开始符号是括号的表达式不能正常处理,结果比较奇怪,去github上看了下,作者到现在也没去解决。然后在网上找了半天也没找到可以直接实现的方案。

这时忽然想起以前上大学学习 数据结构 时,期末专周就是使用c++,以栈的形式实现一个计算器功能,然后临时起意干脆用js实现下好了, 有了想法就做,马上动手,花了两个多小时,把这个程序写出来了然后写了各种表达式进行测试,暂时还没发现问题。

然后我把他发布成了一个npm包了,有需要的直接按照下面方式进行使用即可,欢迎进行各种测试和使用,有问题给我提issues

3. 模块使用方法

使用script标签就进行引入使用

对于这种方式,直接下载dist目录下的`zl_calculator_zl.js`文件使用即可 如: <script src="./zl_calculator_zl.js"> </script> <script> //res就是返回的最终结果 var res=zl_calculator_zl("3+(1.2+0.8+3)/5+7"); </script>

使用import方式引入使用

1. 安装: npm i zl_calculator_zl -S 2. 引入: import {zl_calculator_zl} from 'zl_calculator_zl' 3. 使用: var res=zl_calculator_zl("3+(1.2+0.8+3)/5+7");//res就是返回的最终结果

使用require方式在nodejs中引入使用

1. 安装: npm i zl_calculator_zl -S 2. 引入: var { zl_calculator_zl } = require("zl_calculator_zl") 3. 使用: var res=zl_calculator_zl("3+(1.2+0.8+3)/5+7");//res就是返回的最终结果

一些断言测试示例【如果任何提示都没有那就表示全部断言成功】

//这里我直接使用的console的assert方法进行断言,简单又直接

版权声明:

1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。
2、网站不提供资料下载,如需下载请到原作者页面进行下载。