Kürzlich stellte ich bei der Betrachtung des Front-End-Codes fest, dass die neuen Funktionen von ES6 besonders beliebt geworden sind, insbesondere Let, und die Anwendungen sind sehr häufig.
Obwohl die Verwendung von let das gleiche wie Var ist, hat es sich in Bezug auf Syntax, Semantik und Leistung erheblich verbessert. Vergleichen wir es mit diesen beiden Aspekten unten
Syntax >>
für (var i = 0; i <2; i ++) {console.log ('äußere i:'+i); für (var i = 0; i <2; i ++) {console.log ('innere i:'+i);}}Dies ist eine übliche verschachtelte Schleife, die alle Variable I zum Zählen definieren, und das Ausführungsergebnis lautet wie folgt:
äußere i: 0
innere ich: 0
Innere I: 1
Sie können sehen, dass die äußere Schleife unterbrochen wird, da der Wert von I durch die innere Schleife modifiziert wird. Die übliche Lösung besteht darin, andere Variablen in der inneren Schleife zu verwenden, kann jedoch einen Fehler verursachen, wenn Sie versehentlich versehentlich sind
Wechseln Sie nun var, um zu lassen
für (sei i = 0; i <2; i ++) {console.log ('äußere i:'+i); für (lass i = 0; i <2; i ++) {console.log ('innere i:'+i);}}Das Ausgangsergebnis ist:
äußere i: 0
innere ich: 0
innere I: 1Outer i: 1
innere ich: 0
Innere I: 1
Es ist normal, die inneren und äußeren Schichten haben keinen Einfluss, da Let den Umfang der Variablen nur innerhalb seines eigenen Blocks macht.
Beispiel 2
console.log (a); var a = 'hi';
Das Ausgangsergebnis ist undefiniert. Die Ausführung des Protokolls (a) erfolgt vor der Deklaration der Variablen. Warum gibt es keinen Fehler? Weil der tatsächliche Effekt dieser beiden Codezeilen lautet:
var a; Konsole.log (a); a = 'hi';
Bei der Parsen von JS -Code wird die Variablenerklärung in die Startposition aufgefordert, was ebenfalls verwirrend ist
Nach der Verwendung von LET stattdessen wird es kein Problem geben, und ein Fehler wird direkt gemeldet.
console.log (a); // Uncornt ReferenceError: A ist nicht definiertes A = 'Hi';
Ein einfacher Leistungstest
var start = + new Date (); für (var i = 0; i <1000000; i ++) {var num = 123; var str = 'abc'; var obj = {key: 'value'}; var arr = ['bill', 'dell'];} var end = + new Date (); console.log (end - start);Das durchschnittliche Ausführungsergebnis unter Firefox beträgt 53 ms
Änderung zuzulassen
'Verwenden Sie strict'var start = + new Date (); für (var i = 0; i <1000000; i ++) {lass num = 123; let Str =' abc '; let obj = {key:' value '}; let arr = [' Bill ',' Dell '];Das durchschnittliche Ergebnis beträgt 5 ms und die Beschleunigung ist offensichtlich
Das obige ist die neuen Grammatikvorteile von JavaScript6, die Ihnen vom Herausgeber vorgestellt wurden. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!