Если вы новичок в JavaScript, у вас может возникнуть вопрос: почему существует слишком много способов объявления переменной: объявление «var» из ES5, «let» и «const» из ES6, мы можем легко узнать «const». для постоянного значения, но в чем разница между «var» и «let»?

Китайский: 用 1 分鐘簡單地了解 — JavaScript中 var 與 let 的主要差別 & 一次說清楚 JavaScript 中宣告的各種提升行為

let/const: { область блока }
var: function(){

объем функции

}

Глобальный → Функция → Блок

Резюме

  • У них разная область действия: «var» находится в функции, «let» — в блоке.
  • Поднятие в «var»
  • Временная мертвая зона в слове «let»

Сфера

Что интересно, L12 тоже получает ReferenceError , это похоже на L6, мы не можем получить доступ к переменной вне области видимости.

Подъем

В L2–5 мы можем обнаружить, что variable1 был поднят, поэтому ошибка ссылки не выбрасывается.

Что актуально для L2–5:

(function(){
  var variable1;
  console.log(variable1); // undefined
  variable1 = 20;
}())

Временная мертвая зона

L1–6, мы не можем повторно объявлять одну и ту же переменную в одной и той же области видимости, это TDZ для let.

Но мы можем сделать это, используя var.

Вывод

Просто представьте, что когда вы в начальной школе, одноклассник, сидящий рядом с вами, всегда делал это: «Эй, я помечаю линию между нами, только не переходи ее!»

Верно, это концепция объема, на своем месте, даже если вы двое положили один и тот же учебник по математике, но вы не возьмете не тот.

Как беспорядок, если объем больше?

Вы можете спросить своего старшего брата / сестру, как они распределяют имущество, такое как дом, машины и т. Д., После свадьбы, лол.