[英]JavaScript any object's property returns undefined, why?
我正在研究JS,想知道为什么未定义的JS Object属性返回undefined 。
window.myVar // undefined
现在,如果我尝试访问全局属性myVar (与window.myVar相同),JS将引发错误:
myVar // error: myVar is not defined
注意初始化变量与
var myVar; // undefined
那么,有人可以解释一下这背后的过程吗?
我正在研究JS,想知道为什么未定义的JS Object属性返回未定义。
令desc为使用属性名称P调用O的
[[GetProperty]]
内部方法的结果。如果desc是
undefined
,则返回undefined
。
虽然全局变量成为全局对象的属性,但是尝试解析变量和尝试访问对象的属性是两件事。
如果您尝试访问未定义的变量, 则会引发参考错误 :
如果Type(V)不是Reference,则返回V。
令base为调用GetBase(V)的结果。
如果IsUnresolvableReference(V),则引发ReferenceError异常。
真的没有太多要说的了。 之所以这样,是因为语言是通过这种方式定义的。 如果您要问这背后的原因是什么,那么您必须问一个实际在语言规范上工作的人。
Felix是正确的,这可能有助于阐明以下内容: 理解未定义并防止引用错误
根据mdn的变量
A variable declared using the var statement with no initial value
specified has the value undefined.
所以undefined
的值
myVar
var myVar;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.