ldi*_*ual 4 javascript ecmascript-5
根据ECMA-262规范,以下声明返回1:
eval("1;;;;;")
eval("1;{}")
eval("1;var a;")
Run Code Online (Sandbox Code Playgroud)
确保:
StatementList的值是StatementList中生成Statement的最后一个值的值.
你能解释这些不同的回报吗?
eval("{}") // undefined
eval("var a={}; a;") // {}
eval("var a={};") // undefined
Run Code Online (Sandbox Code Playgroud)
1;和之间有什么区别{};?
单独留下,{}被解释为一个块,而不是一个对象.它不包含任何语句,因此不会影响,例如,eval("1;{}").要强制将其解释为对象,可以使用括号:
eval("1;({})"); // {}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
168 次 |
| 最近记录: |