что в javascript подвергается всплытию
Всплытие (или Hoisting) описывает поведение переменных и функций при их объявлении. При выполнении скрипта, переменные и функции объявленные через var
или function
, будут перемещены вверх (всплывут) в пределах своей области видимости. Таким образом, переменные можно использовать до их объявления, а функции - вызывать до их определения.
Например, вот код:
console.log(myVar);
var myVar = 5;
При выполнении этого кода на консоль будет выведено undefined
, а не ошибка, как могло бы показаться на первый взгляд. Это происходит из-за всплытия переменной, она сначала объявляется, но не инициализируется.
Но для let
и const
(доступные в ES6) это не будет работать, переменные объявленные через них не будут всплывать в начало блока, где они находятся. Поэтому, необходимо объявлять переменные до их использования.