奇怪的评估输出

时间:2013-04-18 09:34:01

标签: javascript eval

尝试以下代码段,它会给出奇怪的结果。有人可以解释一下吗?

var s = "10+10";
alert("Evaluation 1: " + eval(s+s+s)); // 2040
alert("Evaluation 2: " + eval(s+2));   // 112

我期待的输出是30和22

2 个答案:

答案 0 :(得分:4)

根本没什么奇怪的:

s + s + s === "10+10" + "10+10" + "10+10" === "10+1010+1010+10" => 2040
s + 2 === "10+10" + "2" === "10+102" => 112

答案 1 :(得分:-4)

从引号中取出s变量:

var s = 10 + 10;

<强>返回

评价1:60

评估2:22