Что такое функция масштаба блока ECMAScript 6 сравнить с ECMAScript 5
Что такое функция области блока в ECMAScript 6?
Может ли кто-нибудь помочь мне понять основную разницу в функции области блока по сравнению с ECMAScript 5?
Ответ 1
Новые let и const в ES2015 (aka "ES6" ) имеют четыре основных отличия по сравнению с почтенным var:
У них есть область видимости
Они не подняты (ну, они вроде подняты, но полезны)
Повторяющиеся объявления - это ошибки
При использовании в глобальной области действия они не создают свойства глобального объекта (несмотря на создание глобальных переменных, это новая концепция ES2015)
Область блока
var переменные существуют во всей функции, в которой они объявлены (или глобально, если объявлены глобально), они не ограничены блоком, в котором они находятся. Таким образом, этот код действителен:
function foo(flag) {
a = 10;
if (flag) {
var a = 20;
}
return a;
}
console.log(foo(false)); // 10
console.log(foo(true)); // 20