Поднятие — это очень простая концепция JavaScript, и я объясню ее менее чем за 2 минуты, используя всего 10 строк кода.
Давайте посмотрим на код ниже:
function sumFunction(a, b){ return a + b; } const sumArrowFunction = (a , b ) => a + b console.log(sumFunction(1, 2)) console.log(sumFunction(3, 4))
В JavaScript весь код выполняется сверху вниз, поэтому мы определили здесь 2 функции, затем выводим их из логирования, результаты простые 3 и 7, верно?
Но если вы какое-то время использовали JavaScript, то обнаружите, что если переместить первую функцию вниз, вот так:
const sumArrowFunction = (a , b ) => a + b console.log(sumFunction(1, 2)) console.log(sumFunction(3, 4)) function sumFunction(a, b){ return a + b; }
Все по-прежнему работает, хотя и выглядит странно, не так ли? В JavaScript это называется подъемом. Он перемещает часть вашего кода и автоматически помещается в начало файла. В этом случае JavaScript поместит sumFunction
в начало файла перед запуском, чтобы он был определен.
Все станет странно, если вы сделаете это с помощью функции стрелки следующим образом:
console.log(sumFunction(1, 2)) console.log(sumFunction(3, 4)) function sumFunction(a, b){ return a + b; } const sumArrowFunction = (a , b ) => a + b
Как только вы запустите код, вы заметите, что вы не можете вызвать sumArrowFunction
до его инициализации. Почему это? Дело в том, что только обычная функция с ключевым словом function
будет поднята, а другие функции, использующие let
или const
, не будут подняты.
Функция — не единственное, что поднимается в JavaScript, теперь давайте перейдем к поднятию переменных, вот пример:
console.log(num); var num = 2;
Итак, num
не является функцией, но когда вы запускаете код, он работает, но значение равно undefined
. Потому что переменные с ключевым словом var
тоже будут подняты, а let
и const
— нет. Переменные с ключевым словом var
будут созданы как var someVar = undefined
в верхней части файла, и везде, где определена переменная, она просто устанавливает значение переменной.
Помните: только ключевое слово var
поднимает инициализацию переменная
К счастью для вас, в наши дни почти никто не использует ключевое слово var
на практике, только в каверзных вопросах на собеседовании. Так что просто помните о концепции Подъема, ха-ха
Последние слова
Хотя мой контент бесплатен для всех, но если вы найдете эту статью полезной, вы можете купить мне кофе здесь