根据ECMA-262 Specification ,以下语句返回 1
:
eval("1;;;;;")
eval("1;{}")
eval("1;var a;")
确保:
The value of a StatementList is the value of the last value producing Statement in the StatementList.
你能解释一下这些不同的返回吗?
eval("{}") // undefined
eval("var a={}; a;") // {}
eval("var a={};") // undefined
1;
和 {};
有什么区别?
最佳答案
单独放置时,{}
被解释为一个 block ,而不是一个对象。它不包含任何语句,因此不会影响 eval("1;{}")
的值。要强制将其解释为对象,您可以使用括号:
eval("1;({})"); // {}
关于JavaScript eval ("{}") 返回行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10791202/