¿Qué hace el "uso estricto" en JavaScript y cuál es el razonamiento detrás de esto?

2022-04-07 19:12:47

Recientemente, ejecuté parte de mi código JavaScript a través de JSLint de Crockford, y me dio el siguiente error:< /p>

Problema en la línea 1, carácter 1: Falta la instrucción "use strict".

en su código JavaScript. Una vez que agregué la declaración, el error dejó de aparecer. Desafortunadamente, Google no reveló gran parte de la historia detrás de esta cadena de declaraciones. Ciertamente, debe tener algo que ver con la forma en que el navegador interpreta JavaScript, pero no tengo idea de cuál sería el efecto.

, qué implica y sigue siendo relevante?

o es para uso futuro?

- Mark Rogers

Source
zh
Responder


8154
  • Actualización para módulos ES6

    importexport declaraciones) y clases ES6, el modo estricto siempre está habilitado y no se puede deshabilitar.

    Respuesta original

    Este artículo sobre el modo estricto de Javascript podría interesarle: John Resig: modo estricto de ECMAScript 5, JSON y más

    Para citar algunas partes interesantes:

    El modo estricto es una característica nueva de ECMAScript 5 que le permite colocar un programa o una función en un contexto operativo "estricto". Este contexto estricto evita que se realicen ciertas acciones y arroja más excepciones.

    Y:

    El modo estricto ayuda de dos maneras:

    • Atrapa algunos errores comunes de codificación, lanzando excepciones.
    • Previene, o arroja errores, cuando se toman acciones relativamente "inseguras" (como obtener acceso al objeto global).
    • Deshabilita funciones que son confusas o mal pensadas.

    También tenga en cuenta que puede aplicar el "modo estricto" a todo el archivo... O puede usarlo solo para una función específica (todavía citando el artículo de John Resig):

    // Código no estricto...
    
    (función(){
      "uso estricto";
    
      // Define tu biblioteca estrictamente...
    })();
    
    // Código no estricto...
    

    Lo que podría ser útil si tiene que mezclar código antiguo y nuevo ;-)

    "use strict" puedes usar en Perl (¿de ahí el nombre?): te ayuda a cometer menos errores, al detectar más elementos que podrían provocar fallas.

    El modo estricto ahora es compatible con todos los principales navegadores.