代码拉取完成,页面将自动刷新
同步操作将从 phynos/js-rpn-expression 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
采用逆波兰表达式的实现,未打勾表示暂时还没实现但是计划会实现。
实现过程中参考了一些其他资源,就不一一列举了。
var context = new CalContext(); //增加值栈——变量 context.putData("$a",5); //增加值栈——无参数函数 context.putFunction("fun0",function(){ return 1000;}); //增加值栈——单参数函数 context.putFunction("fun1",function(a){ return 10 * a;}); //增加值栈——多参数函数 context.putFunction("fun2",function(a,b){ return 10 * a + b;}); //增加值栈——对象参数函数 var t = { year: 28, fun: function(a) { return a + this.year; } }; context.putFunction("fun3",t.fun,t); //增加值栈——对象 context.putData("people",{ year: 28, fun1: function(){ return this.year + 2; }, fun2: function(a){ return this.year + 10 * a; }, fun3: function(a,b){ return this.year + 10 * a + b; } }); //获取值 //var result = context.calc(expr); //下面是测试用例 context.test("40+8*2",56); context.test("40*8+2",322); context.test("40/8+2",7); context.test("40+8/2",44); context.test("(40+8)/2",24); context.test("40*(8-2)",240); context.test("10%3 + 1",2); context.test("0.1 + 1 + 0.3",1.4); context.test("0.1 *10 + 6.3",7.3); context.test("$a + 5",10); context.test("$a + fun0()",1005); context.test("$a + fun0() + 100",1105); context.test("$a + fun1(1)",15); context.test("$a + fun2(2,1)",26); context.test("$a + fun2(3+7,3)",108); context.test("$a + fun2(fun1(2),3) + 20",228);
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。