web-dev-qa-db-fra.com

Il n'est pas recommandé d'utiliser "use strict" dans ES6?

Je ne connais pas encore ECMAScript 6. Je viens de cloner le référentiel React Starter Kit, qui utilise ES6 pour le code de l'application. J'ai été surpris de voir que le linter est configuré pour interdire les occurrences de la directive use strict, qui, à mon avis, était recommandée dans les versions JavaScript antérieures à ES6. Alors à quoi ça sert?

185
Midiparse

Les modules ES6 sont toujours en mode strict. Pour citer la partie pertinente de la spécification :

10.2.1 Code de mode strict

Une unité syntaxique de script ECMAScript peut être traitée à l'aide de la syntaxe et de la sémantique en mode strict ou non restreint. Le code est interprété comme un code de mode strict dans les situations suivantes:

  • Le code global est un code de mode strict s'il commence par un prologue de directive contenant une directive d'utilisation stricte (voir 14.1.1).
  • Le code du module est toujours le code du mode strict.
  • Toutes les parties de ClassDeclaration ou de ClassExpression sont du code en mode strict.
  • Le code d'évaluation est un code de mode strict s'il commence par un directive Prologue contenant une directive d'utilisation stricte ou si l'appel à eval est une évaluation directe (voir 12.3.4.1) qui est contenue dans un code de mode strict.
  • Le code de fonction est un code de mode strict si la fonction correspondante FunctionDeclaration, FunctionExpression, GeneratorDeclaration, GeneratorExpression, MethodDefinition ou ArrowFunction est contenue dans un code de mode strict ou si le code qui produit la valeur de la fente interne [[ECMAScriptCode]] de la fonction commence par une directive prologue. qui contient une directive d'utilisation stricte.
  • Le code de fonction fourni en tant qu'arguments des constructeurs intégrés Function et Generator correspond au code de mode strict si le dernier argument est une chaîne qui, une fois traitée, est un FunctionBody commençant par un prologue de directive contenant une directive d'utilisation stricte.
244
Kit Sunde