Heim >Web-Frontend >js-Tutorial >Eine kurze Analyse der vier gängigen Methoden zum Schreiben von Javascript-Deklarationen für Schleifenvariablen_Grundkenntnisse

Eine kurze Analyse der vier gängigen Methoden zum Schreiben von Javascript-Deklarationen für Schleifenvariablen_Grundkenntnisse

WBOY
WBOYOriginal
2016-05-16 15:36:381152Durchsuche

Wo soll die Schleifenvariablendeklaration in Javascript platziert werden?

Gewohnheit 1: Direkt verwenden, ohne zu deklarieren

function loop(arr) { 
 for (i = 0; i < arr.length; i++) { 
  // do something 
 } 
} 

Eine sehr gefährliche Verwendungsgewohnheit. Im Allgemeinen wird die Schleifenvariable zu einem Attribut des Fensterobjekts und wird global verwendet, was sich höchstwahrscheinlich auf die normale Logikimplementierung des Programms auswirkt.
Es ist wichtig zu erwähnen, dass im strikten Modus eine direkte Zuweisung ohne Deklaration einer Variablen direkt eine Ausnahme auslöst. Dies hätte schon vor langer Zeit erfolgen sollen! Zitieren einer Passage aus Anhang C des Ecma-262-Standards:
„Die Zuweisung an einen nicht deklarierten Bezeichner oder eine anderweitig nicht auflösbare Referenz erstellt keine Eigenschaft im globalen Objekt. Wenn eine einfache Zuweisung innerhalb des Strict-Mode-Codes erfolgt, darf seine LeftHandSide nicht zu einer nicht auflösbaren Referenz ausgewertet werden. Wenn dies der Fall ist, wird eine ReferenceError-Ausnahme ausgelöst (6.2 .3.2)."
Mit anderen Worten: Wenn eine nicht deklarierte Variable erneut verwendet wird, wird eine ReferenceError-Ausnahme ausgelöst.

Gewohnheit 2: Platzieren Sie es im ersten Anweisungsblock der for-Schleife und deklarieren Sie

wiederholt
function loop(arr) { 
 for (var i = 0; i < arr.length; i++ ){ 
  // do someting 
 } 
 // console.log(i); 
 for (var i = 0; i < arr.length; i++ ){ 
  // do something else 
 } 
} 

Diese Methode scheint die sicherste und standardisierteste zu sein. Viele Studenten, die von C und Java zur Front-End-Entwicklung wechseln, bevorzugen diese Schreibweise. Tatsächlich kann dies auf ein Missverständnis eines wichtigen Konzepts in Javascript zurückzuführen sein. Variablen. Umfang. Im Gegensatz zu C und Java verfügt Javascript nicht über einen echten Bereich auf Blockebene. Das heißt, dass console.log(i) nach dem Ende der ersten Schleife nicht undefiniert ausgibt oder eine ReferenceError-Ausnahme auslöst, sondern normal ausgibt Arr.länge.
Obwohl diese Schreibweise kaum eine andere Bedeutung hat als schön zu sein, ist sie natürlich seit langem kompatibel und verstößt gegen keine Spezifikationen – der ECMA-Standard verbietet nicht die wiederholte Deklaration derselben Variablen in einem bestimmten Bereich.

Gewohnheit 3: Definieren Sie zentral

oben in der Funktion zusammen mit anderen Variablen
function loop(arr) { 
 var var1; 
 var var2; 
 var i; 
 
 for (i = 0; i < arr.length; i++) { 
  // do something 
 } 
} 

Diese c89-ähnliche Methode zur Variablendefinition ist in Javascript nahezu einwandfrei. Sie führt nicht zu dem Missverständnis, dass Javascript den Gültigkeitsbereich auf Blockebene unterstützt, und verstößt auch nicht gegen Standards und Spezifikationen Die Werte der Schleifenvariablen und des Schleifenkörpers können weit voneinander entfernt sein. Ohne auf mehr Code zurückzugreifen, scheint es keine bessere Lösung für dieses Problem zu geben, als darauf zu warten, dass die großen Mainstream-Browserhersteller das Schlüsselwort let in ECMAScript 6 implementieren.

Gewohnheit 4: Schleifencode in IIFE kapseln

function loop(arr) { 
 (function () { 
  for (var i = 0; i < arr.length; i++) { 
   // do something 
  } 
 })(); 
} 

Die letzte Angewohnheit ist IIFE (Immediately-Invoked Function Expression), die Front-End-Programmierern bekannt ist, was bedeutet, dass die Funktion sofort ausgeführt wird. Der Hauptnachteil dieser Methode besteht darin, dass sie relativ mühsam zu schreiben ist und unnötige Leistungseinbußen mit sich bringt (sehr gering), aber in Bezug auf Kompatibilität und Einhaltung verschiedener Standards gute Leistungen erbringt. Entwickler können diesen Ansatz wählen, wenn er nicht zu problematisch ist.

Das Obige ist eine kurze Einführung und Analyse der Schreibgewohnheiten der vier gängigen Schleifenvariablendefinitionen in Javascript. Jede hat ihre eigenen Vor- und Nachteile. Leser können die beste entsprechend ihren eigenen Bedürfnissen auswählen.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn