将括号视为js中的数学运算符

Jac*_*des -1 javascript

如何将javascript eval用于处理括号,因为它是用于数学表达式的?

此代码,例如:

var a="(";
var b=")";
alert(eval(a+2+3+b))// returns 23 while I want to get an output of 5
Run Code Online (Sandbox Code Playgroud)

Pau*_*aul 6

调用a+2+3+b之前计算该表达式eval.你真的打电话给:

alert(eval("(23)"));
Run Code Online (Sandbox Code Playgroud)

你想要+传递给eval,它也需要成为传递给eval的字符串的一部分:

alert(eval(2+"+"+3)); // 5
Run Code Online (Sandbox Code Playgroud)

至于你的问题:

如何将javascript eval用于处理括号,因为它是用于数学表达式的?

你不需要做任何事情.必须先完全评估括号中的子表达式,然后才能在整个表达式中使用它,因此将首先计算括号中的任何内容.EX.(就像你期望的算子的代数顺序):

2*(0+3) // 6
2* 0+3  // 3
Run Code Online (Sandbox Code Playgroud)