JavaScript, помимо всего прочего, странный ... и, возможно, одна из самых странных вещей - это подъем.

При использовании var переменные можно использовать до их объявления. Ну, я знаю, это звучит очень странно для любого, кто программировал на любом языке программирования, кроме JavaScript. Что происходит, так это то, что все объявления, сделанные с использованием var, «поднимаются» или помещаются в верхнюю часть текущей области видимости.

So,

x = 5;
console.log(x);
var x;

дает тот же результат, что и,

var x;
x = 5;
console.log(x);

В первом примере мы не получаем ошибку или undefined в качестве вывода, потому что var x поднят вверх и, таким образом, для движка JS он так же хорош, как заявлено.

Инициализации не поднимаются!

Подъем работает только для объявлений, но не для инициализаций. Так,

console.log(y);
var y = 13;

Приведенный выше код выдаст undefined в качестве вывода, так как это то же самое, что и запись,

var y;
console.log(y);
y = 13;

Обратите внимание на то, как поднимается объявление var y, но не y = 13, поскольку поднимаются только объявления!

Избегание подъема

Подъем, каким бы увлекательным он ни был, может привести к ошибкам, так как его довольно легко не заметить.

  1. Используйте строгий режим JavaScript, используя директиву "use strict" вверху; В строгом режиме JavaScript не разрешены необъявленные переменные.
  2. Используйте более новые методы определения. Подъем не происходит с let или const, их использование увеличит шансы того, что ваш код будет свободным от ошибок (значительно).
  3. Объявите все переменные вверху !!

Нажмите, чтобы увидеть мой канал программирования на Youtube больше !! 🤓🤓 Мне нужна твоя любовь здесь

Пожалуйста, хлопайте в ладоши 👏 если вам нравится содержание, ваша поддержка меня поддерживает. ❤❤