Подъем в javscript

Подъем в javscript

Переменная x повторно объявлена ​​и поднята внутри функции, но никогда не установлена, потому что if (false) никогда не будет достигнуто, то есть undefined . Внешний x известен внутри функции, если вы удалите внутреннее объявление.

Это можно решить, используя const или let (ES6) вместо var . const and let не поднимается и живет только внутри скобок, они объявлены:

 const x = 77; function fn() { if (false) { const x = 55; } console.log(x); // 77 } fn() 

Другое решение состоит в том, чтобы просто использовать два разных имени переменной или удалить переменную внутри оператора if в зависимости от ваших потребностей …

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector