foo; // ReferenceError: foo is not defined
typeof(foo); // undefined
Run Code Online (Sandbox Code Playgroud)
如何typeof规避ReferenceError何时提供未声明的变量标识符?这只是JavaScript解释器"神奇"还是可以用用户土地概念来解释?
不,这在用户土地概念中无法解释 - 如果你愿意,这是"神奇的".
EcmaScript使用Reference规范类型来解释这样的情况.这些引用用来描述任务,语义方法调用,eval等等.通常,在它们上调用GetValue算法以取消引用它们(例如,在表达式语句的求值中),并且这确实抛出ReferenceError了引用不可解析的时间.
相比之下,typeof运算符不只是执行GetValue,而是有一个特殊情况来处理这些未声明的变量引用:
如果
Type(val)是参考,那么一个.如果
IsUnresolvableReference(val)是true,请返回"undefined".
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |