English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
ECMAScript 5El modo estricto introducido en JavaScript esElección de entrada Una forma de variante restringida de JavaScript.
El modo estricto no es solo un subconjunto: tiene un significado intencionalmente diferente al código común.
El modo estricto facilita la escritura de JavaScript "seguro".
El modo estricto cambia de "error de sintaxis" aceptado anteriormente a un error real.
En modo estricto, por ejemplo, no se puede usar variables no declaradas.
El modo estricto se declara agregando "use strict" al principio de un script o función.
Para llamar al modo estricto en todo el script, introduce la declaración "use strict" antes de cualquier otra declaración:
"use strict"; str = "嗨,我是严格模式脚本!"; // Genera un error porque str no está declaradoPrueba para ver‹/›
Para llamar al modo estricto en una función, coloca la declaración exacta "use strict" en el cuerpo de la función, antes de cualquier otra declaración:
function myFunc() { // Sintaxis de modo estricto a nivel de función "use strict"; str = "大家好,我是严格模式函数!"; // Esto causará un error return str; }Prueba para ver‹/›
El modo estricto puede ayudarte a escribir código más limpio, por ejemplo, evitando el uso de variables no declaradas.
La instrucción "use strict" solo se reconoce al principio de un script o función.
La sintaxis de comillas simples y dobles es aceptable ('use strict'; o "use strict";).
Como sabes, en modo estricto, es necesario declarar todas las variables.
Si se asigna un valor a un identificador que no es una variable declarada, se generará un ReferenceError:
"use strict"; x = 5; // ReferenceError: x no está definidoPrueba para ver‹/›
No se permite el uso de objetos no declarados (los objetos también son variables):
"use strict"; coord = {x:10, y:20}); // ReferenceError: coord no está definidoPrueba para ver‹/›
En modo estricto, si se intenta eliminar una variable, se lanzará un error de sintaxis:
"use strict"; var msg = "Hello World"; delete msg;// SyntaxErrorPrueba para ver‹/›
Del mismo modo, al intentar eliminar una función en modo estricto, se producirá un error de sintaxis:
"use strict"; function sum(a, b) { return a + b; } delete sum;// SyntaxErrorPrueba para ver‹/›
En modo estricto, no se permite el nombre de parámetros repetidos:
"use strict"; function square(a, a) { // SyntaxError return a * a; }Prueba para ver‹/›
En modo estricto, no se permite la escritura de propiedades de solo lectura:
"use strict"; var person = {name: "Akash", age: 22}; Object.defineProperty(person, "gender", {value: "male", writable: false}); person.gender = "female"; // TypeErrorPrueba para ver‹/›
En modo estricto, no se permite el uso de la declaración with:
"use strict"; with(Math){x = sqrt(25); // SyntaxErrorPrueba para ver‹/›
En modo estricto, no se permite el uso de números octales:
"use strict"; var x = 010; // SyntaxErrorPrueba para ver‹/›
Por razones de seguridad,eval()No se permite crear variables en el ámbito de la llamada:
"use strict"; eval("var x = ", 10; console.log(x); // ReferenceError: La variable x no está definidaPrueba para ver‹/›
La cadena "eval" no se puede usar como identificador (nombre de variable):
"use strict"; var eval = "oldtoolbag.com";// SyntaxErrorPrueba para ver‹/›
La cadena "arguments" no se puede usar como identificador (nombre de variable):
"use strict"; var arguments = "oldtoolbag.com";// SyntaxErrorPrueba para ver‹/›
Las versiones futuras de ECMAScript pueden introducir nuevas sintaxis, ES5El modo estricto de JavaScript aplica algunas limitaciones para simplificar la transición.
Si se permite realizar algunos cambios en la base, es más fácil realizar algunas modificaciones.
En modo estricto, la lista de identificadores siguientes se convierte en palabras reservadas:
implements
interface
let
package
private
protected
public
static
yield
"use strict"; var paquete = true; // Esto causará un errorPrueba para ver‹/›