Récemment, en regardant le code frontal étranger, j'ai constaté que les nouvelles fonctionnalités d'ES6 sont devenues très populaires, en particulier, et les applications sont très courantes.
Bien que l'utilisation de LET soit la même que VAR, elle s'est beaucoup améliorée en termes de syntaxe et de sémantique et de performances. Comparons-le de ces deux aspects ci-dessous
Syntaxe >>
pour (var i = 0; i <2; i ++) {console.log ('exter i:' + i); pour (var i = 0; i <2; i ++) {console.log ('Inner i:' + i);}}Il s'agit d'une boucle imbriquée commune, qui définit toutes la variable i à compter, et le résultat de l'exécution est le suivant:
Extérieur i: 0
INTER I: 0
INTER I: 1
Vous pouvez voir que la boucle extérieure est interrompue car la valeur de i est modifiée par la boucle intérieure. La solution habituelle consiste à utiliser d'autres variables dans la boucle intérieure, mais elle peut entraîner une erreur si vous
Maintenant changer var pour laisser
pour (que i = 0; i <2; i ++) {console.log ('exter i:' + i); pour (que i = 0; i <2; i ++) {Console.log ('Inner I:' + i);}}Le résultat de la sortie est:
Extérieur i: 0
INTER I: 0
Inner I: 1outer I: 1
INTER I: 0
INTER I: 1
C'est normal, les couches intérieures et extérieures n'ont aucun effet, car Let ne fait que la portée de la variable uniquement dans son propre bloc.
Exemple 2
console.log (a); var a = 'hi';
Le résultat de sortie n'est pas défini. L'exécution du journal (a) est avant de déclarer la variable. Pourquoi n'y a-t-il pas d'erreur? Parce que l'effet réel de ces deux lignes de code est:
var a; console.log (a); a = 'hi';
Lorsque l'analyse du code JS, la déclaration de variable sera invitée à la position de départ, ce qui est également déroutant
Après avoir utilisé LET à la place, il n'y aura pas de problème et une erreur sera signalée directement.
console.log (a); // UNCAPED ReferenceError: A n'est pas défini a = 'hi';
Un test simple de performance
var start = + new Date (); for (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);Le résultat d'exécution moyen sous Firefox est de 53 ms
Changer pour laisser
'utiliser strict'var start = + new Date (); for (var i = 0; i <1000000; i ++) {let num = 123; let str =' abc '; let obj = {key:' value '}; let arr = [' bill ',' dell '];} var end = + new Date (); console.log (end - start);Le résultat moyen est de 5 ms, et l'accélération est évidente
Ce qui précède est les nouveaux avantages de grammaire de JavaScript6 qui vous sont présentés par l'éditeur. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!