¿No se recomienda utilizar "uso estricto" en ES6?
Todavía no estoy familiarizado con ECMAScript 6. Acabo de clonar el repositorio del React Starter Kit, que usa ES6 para el código de la aplicación. Me sorprendió ver que linter está configurado para prohibir la aparición de la use strict
directiva, que pensé que se recomendaba en JavaScript anterior a ES6. ¿Entonces cuál es el punto?
Aceptado
Los módulos ES6 siempre están en modo estricto. Para citar la parte relevante de la especificación :
10.2.1 Código de modo estricto
Una unidad sintáctica de ECMAScript Script se puede procesar utilizando sintaxis y semántica en modo estricto o sin restricciones. El código se interpreta como código de modo estricto en las siguientes situaciones:
- El código global es código de modo estricto si comienza con un Prólogo de Directiva que contiene una Directiva de Uso Estricto (ver 14.1.1).
- El código del módulo es siempre un código de modo estricto.
- Todas las partes de una ClassDeclaration o ClassExpression son código de modo estricto.
- El código de evaluación es código de modo estricto si comienza con un prólogo de directiva que contiene una directiva de uso estricto o si la llamada a eval es una evaluación directa (ver 12.3.4.1) que está contenida en código de modo estricto.
- El código de función es código de modo estricto si la FunctionDeclaration, FunctionExpression, GeneratorDeclaration, GeneratorExpression, MethodDefinition o ArrowFunction asociada está contenida en un código de modo estricto o si el código que produce el valor de la ranura interna [[ECMAScriptCode]] de la función comienza con un Prólogo de directiva que contiene una directiva de uso estricto.
- El código de función que se proporciona como argumentos a los constructores integrados de función y generador es código de modo estricto si el último argumento es una cadena que, cuando se procesa, es un cuerpo de función que comienza con un prólogo de directiva que contiene una directiva de uso estricto.