56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| title: Strict Mode
 | ||
| localeTitle: 严格的模式
 | ||
| ---
 | ||
| ECMAScript 5中引入了严格模式,允许您在“严格”的操作环境中放置程序或函数。这种严格的上下文阻止了某些操作被采取并引发更多异常。
 | ||
| 
 | ||
| 严格模式对常规JavaScript语义进行了一些更改。
 | ||
| 
 | ||
| *   首先,严格模式通过更改它们以抛出错误来消除一些JavaScript无声错误。
 | ||
| *   其次,严格模式修复了使JavaScript引擎难以执行优化的错误:严格模式代码有时可以比非严格模式的相同代码运行得更快。
 | ||
| *   第三,严格模式禁止在ECMAScript的未来版本中可能定义的某些语法。
 | ||
| 
 | ||
| 严格模式代码和非严格模式代码可以在同一个脚本中共存。
 | ||
| 
 | ||
| ```javascript
 | ||
| // Non-strict code... 
 | ||
|  
 | ||
|  (function(){ 
 | ||
|     "use strict"; 
 | ||
|  
 | ||
|     // Define your library strictly... 
 | ||
|  })(); 
 | ||
|  
 | ||
|  // Non-strict code... 
 | ||
| ```
 | ||
| 
 | ||
| ## 调用严格模式
 | ||
| 
 | ||
| 严格模式适用于_整个脚本_或_单个功能_ 。
 | ||
| 
 | ||
| **脚本的严格模式**
 | ||
| 
 | ||
| ```javascript
 | ||
| // Whole-script strict mode syntax 
 | ||
|  
 | ||
|  "use strict"; 
 | ||
|  var v = "Hi!  I'm a strict mode script!"; 
 | ||
| ```
 | ||
| 
 | ||
| **严格的功能模式**
 | ||
| 
 | ||
| ```javascript
 | ||
| function strict(){ 
 | ||
|     // Function-level strict mode syntax 
 | ||
|  
 | ||
|     'use strict'; 
 | ||
|     function nested() { return "And so am I!"; } 
 | ||
|     return "Hi!  I'm a strict mode function!  " + nested(); 
 | ||
|  } 
 | ||
|  
 | ||
|  function notStrict() { return "I'm not strict."; } 
 | ||
| ```
 | ||
| 
 | ||
| **基本上它可以通过检测可能导致破损的事情(通常是非严格模式)来帮助您减少错误。**
 | ||
| 
 | ||
| _有关更多信息,请查看此[MDN页面](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Strict_mode) 。_ |