Доброго времени суток всем. Осваиваю поведение javascript со времен пандемии c. Я уже знаю о подъеме, но на днях я увидел, что парень отправил этот фрагмент кода группе
var foo = 1
function bar(){
if(!foo){
var foo = 10
}
console.log(foo)
}
bar()
Этот фрагмент кода печатает 10!
Я знаю, что объявление var - это только поднял не инициализацию и что присвоение 10 никогда не произойдет, потому что! foo здесь ложно
Так почему, черт возьми, это печатает 10? Просвети меня, пожалуйста ?