全局对象是在执行代码之前由JavaScript解释器初始化的对象。在全局范围上声明的所有变量都作为属性存储在全局对象中。
在Node.js环境中,全局对象可以通过global
关键字访问,而在浏览器窗口中,可以通过window
关键字访问它。在全局范围中使用时, this
关键字也引用全局对象。请注意,如果启用了strict mode
则在全局范围内使用this
将返回undefined
。
例如:
// global scope
var foo = "bar";
console.log(global.foo); // bar (in a Node environment)
console.log(window.foo); // bar (in a browser window)
console.log(this.foo); // bar (if strict mode is disabled)
函数本地范围与全局范围之间的区别在此非常重要:全局对象仅包含在全局范围内声明的变量,而不包含函数的本地范围。
全局对象还包含NaN
, undefined
和Infinity
属性以及以下函数:
decodeURI()
decodeURIComponent()
encodeURI()
encodeURIComponent()
escape()
eval()
GetObject()
isFinite()
isNaN()
parseFloat()
parseInt()
ScriptEngine()
ScriptEngineBuildVersion()
ScriptEngineMajorVersion()
ScriptEngineMinorVersion()
unescape()
更多JavaScript教程
学习更多JavaScript教程