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) |