【发布时间】:2012-05-28 22:48:05
【问题描述】:
根据ECMA-262 Specification,以下语句返回1:
eval("1;;;;;")
eval("1;{}")
eval("1;var a;")
确保:
StatementList 的值是 StatementList 中最后一个产生值的 Statement 的值。
你能解释一下这些不同的回报吗?
eval("{}") // undefined
eval("var a={}; a;") // {}
eval("var a={};") // undefined
1; 和 {}; 有什么区别?
【问题讨论】:
-
这是复制品,FWIW。 (在 SO 上很难找到这样的重复项:-/)
-
stackoverflow.com/questions/9943278/javascript-eval-expression(思路相同,但由于语法无效导致观察到的语义不同)