2017-02-09 4 views
2

Ich überarbeite ein altes AngularJS 1.3-Projekt. Eines der Dinge, die ich bemerkt, ist, dass die Person, die das machte jede einzelne Datei von AngularJS Code mit gestartet:Was ist der Vorteil der Verwendung von "function() 'strict'" in jeder Datei verwenden?

(function() { 
'use strict'; 

    angular.module('app').factory('Employees', ['$http', function($http) { 
    // angular code removed 
    }]); 

})(); 

Funktioniert mit der Funktion() ‚use strict‘ in jeder einzelnen Datei keinen Nutzen, um den Code? Für mich fühlt es sich wie eine Verschwendung von 3 Zeilen in jeder einzelnen Datei an. Gibt es dafür einen Standard/Best Practice?

+0

Ich weiß, was 'use strict' tut. Aber ich würde gerne einen Weg finden, nur einmal 'Use strict' zu verwenden, ohne es global zu machen. – Stefan1991

+0

Siehe auch [Warum wird 'use strict' normalerweise nach einem IIFE verwendet (und nicht an der Spitze eines Skripts)?] (Http://stackoverflow.com/questions/38670872/why-is-use- strict- usually-after -an-life-eher-als-an-der-Spitze-eines-Skripts) – Bergi

+0

"* benutze 'strict' nur einmal, ohne es global zu machen. *" ist genau das, was dein Code macht, er macht das * Modul * streng. – Bergi

Antwort

0

Wenn Sie 'use strict'; außerhalb des IIFE setzen, machen Sie es global.

Das bedeutet, dass es möglich ist, dass Code, über den Sie keine Kontrolle haben (z. B. andere Bibliotheken), der nicht streng kompatibel ist, Probleme verursachen könnte.

Genau wie variable Umfang, Sie nur Scoping 'use strict' im Rahmen des Codes nur durch sie alle innerhalb des IIFE

+0

Ich würde jedoch davon ausgehen, dass Bibliotheken, die sich im strikten Modus ersticken, andere Probleme haben ... – Bergi

0

Mit use strict setzen hilft Ihnen, Probleme mit Schließungen und variable Bereiche zu verhindern.

Zum Beispiel, wenn Sie versehentlich eine globale Variable gesetzt - in diesem Fall durch Vergessen var Schlüsselwort in der for Schleife hinzufügen, use strict Modus es fangen und zu desinfizieren.

(function(){ 
 
    for (i = 0; i < 5; i++){ 
 
    } 
 
    console.log(i); 
 
})();
.as-console-wrapper { max-height: 100% !important; top: 0; }

(function(){ 
 
    'use strict'; 
 
    for (i = 0; i < 5; i++){ 
 
    } 
 
    console.log(i); 
 
})();
.as-console-wrapper { max-height: 100% !important; top: 0; }

Verwandte Themen