繁体   English   中英

窗口属性和全局变量的区别

[英]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.awindow对象执行属性查找,它返回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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM