56 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			56 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: Strict Mode
							 | 
						||
| 
								 | 
							
								localeTitle: Modo estricto
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								El modo estricto se introdujo en ECMAScript 5 que le permite colocar un programa o una función en un contexto operativo "estricto". Este contexto estricto evita que se tomen ciertas acciones y lanza más excepciones.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								El modo estricto hace varios cambios a la semántica normal de JavaScript.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								*   Primero, el modo estricto elimina algunos errores silenciosos de JavaScript cambiándolos para lanzar errores.
							 | 
						||
| 
								 | 
							
								*   En segundo lugar, el modo estricto corrige los errores que dificultan que los motores de JavaScript realicen optimizaciones: el código del modo estricto a veces puede ejecutarse más rápido que el código idéntico que no es el modo estricto.
							 | 
						||
| 
								 | 
							
								*   En tercer lugar, el modo estricto prohíbe la definición de sintaxis en futuras versiones de ECMAScript.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								El código de modo estricto y el código de modo no estricto pueden coexistir en un mismo script.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```javascript
							 | 
						||
| 
								 | 
							
								// Non-strict code... 
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								 (function(){ 
							 | 
						||
| 
								 | 
							
								    "use strict"; 
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								    // Define your library strictly... 
							 | 
						||
| 
								 | 
							
								 })(); 
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								 // Non-strict code... 
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Invocando modo estricto
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								El modo estricto se aplica a _scripts completos_ o a _funciones individuales_ .
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**Modo estricto para scripts.**
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```javascript
							 | 
						||
| 
								 | 
							
								// Whole-script strict mode syntax 
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								 "use strict"; 
							 | 
						||
| 
								 | 
							
								 var v = "Hi!  I'm a strict mode script!"; 
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**Modo estricto para funciones.**
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```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."; } 
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**Básicamente, le ayuda a cometer menos errores, al detectar cosas que podrían provocar roturas que no se detectan normalmente (modo no estricto).**
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								_Para más información [visita](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Strict_mode) esta [página de MDN](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Strict_mode) ._
							 |