Un mot de prudence, tout ce que vous dure charge des programmeurs: l'application "use strict" à du code existant peut être dangereux! Cette chose n'est pas certains pour se sentir bien, heureux face autocollant que vous pouvez taper sur le code pour faire "mieux". Avec le "use strict" pragma, le navigateur de LANCER des exceptions dans des endroits aléatoires qu'il ne jetait jamais avant tout parce que, à l'endroit où vous faites quelque chose qui par défaut/en vrac JavaScript permet heureusement mais strictes JavaScript abhorre! Vous pouvez avoir de la rigueur des violations cacher rarement utilisées appels dans votre code qui ne fera que jeter une exception quand ils finissent par se faire rouler - dire, dans l'environnement de production que vos clients payants utiliser!
Si vous vous apprêtez à franchir le pas, c'est une bonne idée d'appliquer "use strict" aux côtés complète de tests unitaires et strictement configuré JSHint construire tâche qui vous donnera de la confiance qu'il n'y a pas de coin sombre de votre module qui va exploser horriblement juste parce que vous avez activé le Mode Strict. Ou, hey, voici une autre possibilité: il suffit de ne pas ajouter "use strict" à tout de votre héritage, code, il est probablement plus sûr de cette façon, honnêtement. CERTAINEMENT NE PAS ajouter "use strict" pour les modules que vous n'êtes pas propriétaire ou de maintenir, à l'instar de modules tiers.
Je pense que même si il est un redoutable animal en cage, "use strict" peut être quelque chose de bon, mais vous devez le faire correctement. Le meilleur moment pour aller strict, c'est quand votre projet est greenfield et vous commencez à partir de zéro. Configurer JSHint/JSLint avec tous les avertissements et les options de crinqué aussi serré que votre équipe peut l'estomac, obtenir un bon build/test/assert système du jour truqué comme Grunt+Karma+Chai, et ENSUITE seulement commencer le marquage de tous vos nouveaux modules comme "use strict". Être préparé pour guérir beaucoup de niggly les erreurs et les avertissements. Assurez-vous que tout le monde comprenne la gravité par la configuration de la construire à l'ÉCHEC si JSHint/JSLint produit toutes les violations.
Mon projet n'était pas un nouveau projet lorsque j'ai adopté "use strict". Comme un résultat, mon IDE est plein de taches rouges, parce que je n'ai pas de "use strict" sur la moitié de mes modules, et JSHint se plaint à ce sujet. C'est un rappel de ce que les refactorings que je dois faire à l'avenir. Mon objectif est d'être une marque rouge en raison libre à tous de mon manque de "use strict", mais qui est à des années maintenant.