2013-04-18 199 views
-3

尝试下面的代码片段,它给出了奇怪的结果。任何人都可以解释吗?奇怪的评估输出

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

输出,我希望是30和22

+0

的输出是什么??? –

+0

期望的输出是什么?... –

+2

我在两个警报框中得到了2040(eval(“10 + 1010 + 1010 + 10”))和112(eval(“10 + 102”)),这非常有意义对我来说。 – developmentalinsanity

回答

4

没什么奇怪有关它在所有:

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

感谢您的解释。我没有考虑连接 –

-4

采取s变出报价:

var s = 10 + 10; 

退货

评价1:60

评价2:22