![](/img/trans.png)
[英]What's the difference between a global variable and a 'window.variable' in JavaScript?
[英]Difference between window's properties and global variable
我尝试在浏览器中运行下面的代码。 我认为属性window.a
和 global a
是内存中的同一个单元格。 有人可以给我一个解释这种行为的文章的链接。
// undefined
// if (window.a) {}
// Uncaught ReferenceError: a is not defined
// if (a) {}
window
是一个对象,尝试访问未在对象上设置的键总是返回undefined
,即使变量a
尚未设置。
var a = {}
a.b
>>> undefined
不同之处在于a
执行变量查找(失败,因为您没有定义它),而window.a
对window
对象执行属性查找,它返回undefined
。
他们是一样的:
a = 1;
a === window.a // true
编辑:抱歉,那里有点太快了...我没有回答任何问题。 这篇文章很好地解释了差异: https : //javascriptweblog.wordpress.com/2010/08/16/understanding-undefined-and-preventing-referenceerrors/
“如果引用的基值未定义,则该引用被认为是不可解析的”
window.a // base value is window, reference object is a
a // base value is a
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.