Недавно, глядя на иностранный фронт-код, я обнаружил, что новые функции ES6 стали довольно популярными, особенно Let, и приложения очень распространены.
Хотя использование let такое же, как Var, оно значительно улучшилось с точки зрения синтаксиса, семантики и производительности. Давайте сравним это из этих двух аспектов ниже
Синтаксис >>
for (var i = 0; i <2; i ++) {console.log ('внешний i:'+i); for (var i = 0; i <2; i ++) {console.log ('inner i:'+i);}}Это обычная вложенная цикл, все из которых определяют переменную для подсчета, и результат выполнения выглядит следующим образом:
Внешний I: 0
Внутренняя I: 0
Внутренняя I: 1
Вы можете видеть, что внешний цикл прерывается, потому что значение I изменяется внутренним циклом. Обычное решение состоит в том, чтобы использовать другие переменные во внутреннем цикле, но это может вызвать ошибку, если вы случайно
Теперь измените var, чтобы позволить
for (let i = 0; i <2; i ++) {console.log ('внешний i:'+i); for (let i = 0; i <2; i ++) {console.log ('inner i:'+i);}}Результатом вывода:
Внешний I: 0
Внутренняя I: 0
Внутренний I: 1outer I: 1
Внутренняя I: 0
Внутренняя I: 1
Это нормально, внутренние и внешние слои не имеют никакого эффекта, потому что пусть делает область переменной только в своем собственном блоке.
Пример 2
console.log (a); var a = 'hi';
Результат вывода не определен. Выполнение журнала (а) является до объявления переменной. Почему нет ошибок? Потому что фактический эффект этих двух строк кода составляет:
var a; console.log (a); a = 'hi';
При анализе кода JS, объявление переменной будет предложено в начальной позиции, которая также сбивает с толку
После использования let вместо этого не будет проблем, и будет сообщена ошибка напрямую.
console.log (a); // uncaught referenceerror: a не определяется a = 'hi';
Простой тест производительности
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);Средний результат выполнения в Firefox составляет 53 мс.
Изменить, чтобы позволить
'Используйте strict'var start = + new Date (); for (var i = 0; i <1000000; i ++) {let num = 123; let str =' abc '; let obj = {key:' value '}; lem Arr = [' bill ',' dell '];} var end = + new Date (); console.log (end - start);Средний результат составляет 5 мс, а ускорение очевидно
Выше приведено новые грамматические преимущества JavaScript6, введенные вам редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!