43 lines
1.5 KiB
Markdown
43 lines
1.5 KiB
Markdown
|
---
|
|||
|
title: Global Object
|
|||
|
localeTitle: 全球对象
|
|||
|
---
|
|||
|
全局对象是在执行代码之前由JavaScript解释器初始化的对象。在全局范围(参见: [Scopes](http://forum.freecodecamp.com/t/scopes-in-javascript/14696) )上声明的所有变量都作为属性存储在全局对象中。
|
|||
|
|
|||
|
在Node.js环境中,全局对象可以通过`global`关键字访问,而在浏览器窗口中,可以通过`window`关键字访问它。在全局范围中使用时, `this`关键字也引用全局对象。请注意,如果启用了`strict mode`则在全局范围内使用`this`将返回`undefined` 。
|
|||
|
|
|||
|
例如:
|
|||
|
|
|||
|
```javascript
|
|||
|
// 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`属性以及以下函数:
|
|||
|
|
|||
|
1. `decodeURI()`
|
|||
|
2. `decodeURIComponent()`
|
|||
|
3. `encodeURI()`
|
|||
|
4. `encodeURIComponent()`
|
|||
|
5. `escape()`
|
|||
|
6. `eval()`
|
|||
|
7. `GetObject()`
|
|||
|
8. `isFinite()`
|
|||
|
9. `isNaN()`
|
|||
|
10. `parseFloat()`
|
|||
|
11. `parseInt()`
|
|||
|
12. `ScriptEngine()`
|
|||
|
13. `ScriptEngineBuildVersion()`
|
|||
|
14. `ScriptEngineMajorVersion()`
|
|||
|
15. `ScriptEngineMinorVersion()`
|
|||
|
16. `unescape()`
|
|||
|
|
|||
|
# 参考
|
|||
|
|
|||
|
1. MSDN: [全局对象(Javascript)](https://msdn.microsoft.com/en-us/library/52f50e9t)
|