评估功能 - 评估顺序

时间:2015-02-05 12:55:37

标签: javascript html

当我给出以下声明时,输出显示为-200。

任何人都可以帮助我了解eval()中实际发生的事情



alert(eval(5-5*5+"5 + 5"));




1 个答案:

答案 0 :(得分:5)

有两个步骤:字符串由您看到的操作计算,然后该字符串被逐出。

您正在评估的是

的结果
5-5*5+"5 + 5"

( 5 - (5*5) ) + "5 + 5"

-20 + "5 + 5"

这是一个稍微棘手的部分:adding a number and a string is done via string concatenation所以该操作的结果是

"-20" + "5 + 5"

给出了

"-205 + 5"

然后该字符串被唤醒,这会产生-200