Inclure 'use strict';
comme première instruction dans une fonction d'habillage, de sorte qu'elle n'affecte que cette fonction. Cela évite les problèmes lors de la concaténation de scripts qui ne sont pas stricts.
Voir le dernier article de blog de Douglas Crockford, Strict Mode Is Coming To Town .
Exemple de ce poste:
(function () {
'use strict';
// this function is strict...
}());
(function () {
// but this function is sloppy...
}());
Mise à jour:
dans le cas où vous ne souhaitez pas encapsuler une fonction immédiate (par exemple, il s'agit d'un module de nœud), vous pouvez désactiver l'avertissement.
Pour JSLint (par Zhami ):
/*jslint node: true */
Pour JSHint :
/*jshint strict:false */
ou (selon Laith Shadeed )
/* jshint -W097 */
Pour désactiver tout avertissement arbitraire de JSHint, vérifiez la carte dans le code source de JSHint (détails dans la documentation ).
Mise à jour 2: JSHint prend en charge l' node:boolean
option. Voir .jshintrc
sur github .
/* jshint node: true */
-1
/*jshint strict:false */
de rendre plus clair ce que vous faites (à moins qu'il n'y ait un avantage particulier à votre code numérique que je ne connais pas)"use strict";
qu'une seule fois par fichier.Si vous écrivez des modules pour NodeJS, ils sont déjà encapsulés. Dites à JSLint que vous avez un nœud en incluant en haut de votre fichier:
la source
/*jshint strict:false */
"node": true
à .jshintrcJe suggère d'utiliser à la place jshint .
Il permet de supprimer cet avertissement via
/*jshint globalstrict: true*/
.Si vous écrivez une bibliothèque, je ne suggérerais d'utiliser global strict que si votre code est encapsulé dans des modules comme c'est le cas avec nodejs.
Sinon, vous forceriez tous ceux qui utilisent votre bibliothèque en mode strict.
la source
strict: 'global'
maintenant et consultez jshint.com/docs/options/#globalstrictJ'ai commencé à créer une application Node.js / browserify suite à l' article de blog JavaScript multiplateforme . Et je suis tombé sur ce problème, car mon tout nouveau Gruntfile n'a pas réussi jshint.
Heureusement, j'ai trouvé une réponse dans le livre de Leanpub sur Grunt :
L'ajout
node: true
de jshintoptions
, pour mettre jshint en "mode Node", a supprimé les deux erreurs pour moi.la source
Ajoutez un fichier .jslintrc (ou .jshintrc dans le cas de jshint) à la racine de votre projet avec le contenu suivant:
la source
Il n'y a rien de mal à la forme des chaînes.
Plutôt que d'éviter la forme stricte "globale" par souci de concaténer du javascript non strict, il est probablement préférable de simplement corriger le fichu javascript non strict pour qu'il soit strict.
la source
Je pense que tout le monde a raté la partie "soudainement" de cette question. Très probablement, votre .jshintrc a une erreur de syntaxe, il n'inclut donc pas la ligne «navigateur». Exécutez-le via un validateur json pour voir où se trouve l'erreur.
la source
ajoutez ces lignes au point de départ de votre fichier
la source
C'est aussi simple que cela: Si vous voulez être strict avec tout votre code, ajoutez-le
"use strict";
au début de votre JavaScript.Mais si vous ne voulez être strict qu'avec une partie de votre code, utilisez le formulaire de fonction. Quoi qu'il en soit, je vous recommande de l'utiliser au début de votre JavaScript, car cela vous aidera à être un meilleur codeur.
la source
"use strict";
haut de mon fichier JS, donc cela pourrait ne pas être entièrement vrai."use strict";
, où elle est simplement placée en haut de votre code. Il autorise uniquement"use strict;"
lorsqu'il est enveloppé dans une fonction. (JS_Hint_ vous permet cependant d'utiliser le formulaire global - voir la réponse ci-dessus pour le paramètre nécessaire).