Что такое функция масштаба блока 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