79 votes

Jshint.com requiert "use strict". Qu'est-ce que cela signifie ?

Jshint.com donne l'erreur :

Ligne 36 : var signin_found ; Manque l'instruction "use strict".

39voto

Czarek Tomczak Points 4551

Ajoutez "use strict" en haut de votre fichier js (à la ligne 1 de votre fichier .js) :

"use strict";
...
function initialize_page()
{
    var signin_found;
    /*Used to determine which page is loaded / reloaded*/
    signin_found=document.getElementById('signin_button');
    if(signin_found) 
{

Pour en savoir plus sur "use strict", consultez une autre question posée ici sur stackoverflow :

Que fait "use strict" en JavaScript, et quel est le raisonnement qui le sous-tend ?

UPDATE.

Il y a quelque chose qui ne va pas avec jshint.com, il exige que vous mettiez "use strict" à l'intérieur de chaque fonction, mais il devrait être autorisé à le mettre globalement pour chaque fichier.

jshint.com pense que c'est faux.

"use strict";    
function asd()
{
}

Mais il n'y a rien de mal à cela...

Il veut que vous mettiez "use strict" à chaque fonction :

function asd()
{
    "use strict";
}
function blabla()
{
    "use strict";
}

Ensuite, il est dit :

Bon travail ! JSHint n'a pas trouvé de problèmes avec votre code.

33voto

Anton Kovalyov Points 1413

Mainteneur de JSHint ici.

JSHint - la version utilisée sur le site Web - vous oblige à utiliser le mode strict au niveau des fonctions dans votre code. Il est très facile de désactiver cette fonction, il suffit de décocher la case "Avertir lorsque le code n'est pas en mode strict" :

jshint.com screenshot

Pourquoi ne pas autoriser le mode strict global comme suggéré par @Czarek ? Parce que certains des fichiers JavaScript utilisés sur votre page peuvent ne pas être compatibles avec le mode strict et le mode strict global briserait ce code. Pour utiliser le mode strict global, il existe une option appelée globalstrict .

J'espère que cela vous aidera !

10voto

lenrok7 Points 70

Je pense que c'est parce que jshint essaie de nous "protéger" contre l'affectation accidentelle du mode strict à tout le fichier. Et aussi, il est bon d'envelopper le code avec une fonction anonyme, ou d'utiliser une sorte d'espace de noms.

Par exemple, les deux fonctionnent en mode strict :

(function() {

   "use strict";

   function foo() {
        .....
   }

   function bar() {
        .....
   }
}());

4voto

MikeD Points 98

JSlint exige que votre code soit en "mode strict".

Pour ce faire, il suffit d'ajouter "use strict"; en haut de votre code.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X