在JavaScript中将字符串转换为表达式

Convert string to expression in JavaScript

本文关键字:转换 表达式 字符串 JavaScript      更新时间:2023-09-26

我正在制作一个JavaScript计算器,我想知道如何将字符串转换为表达式。

var numbers = "5+5+6";
numbers = +numbers;
 document.querySelector('.screen').innerHTML = numbers;

在变量前加上+似乎不起作用。如果有人帮忙的话,我会很感激的。

可以这样使用eval()函数:

var numbers = "5+5+6";
document.querySelector('.screen').innerHTML = eval(numbers);;

计算/执行JavaScript代码/表达式:

var x = 10;
var y = 20;
var a = eval("x * y") + "<br>";
var b = eval("2 + 2") + "<br>";
var c = eval("x + 17") + "<br>";
var res = a + b + c;

res的结果将是:

200
4
27

不使用eval,这是作弊-你总是可以写一个简单的计算器应用程序。

首先,利用String.split(),如下所示

var numbers = "5+5+6";
numbers.split("");
// => ["5","+","5","+","6"]

现在你所需要做的就是找出如何在保持操作顺序正确的情况下对其求值。提示:它可能涉及到树

尝试使用String.prototype.match(), Array.prototype.reduce(), Number()。参见Chrome应用程序:从字符串

做数学

var numbers = "5+5+6";
var number = numbers.match(/'d+|'+'d+|'-'d+/g)
  .reduce(function(a, b) {
    return Number(a) + Number(b)
  });
document.querySelector(".screen").innerHTML = number;
<div class="screen"></div>