На данный вопрос уже ответили:
Почему объявление функции поднимается в начало блока, а ее идентификатор доступен аж в начале сценария с не определенным значением (undefined) ?
<script>
console.log(foo); // undefined
if(true) {
console.log(foo()); // "hello"
function foo() {
return 'hello';
}
}
console.log(foo()); // "hello"
</script>
Начиная с es6, функции можно объявлять внутри блоков if. В этом случае область их видимости будет заканчиваться областью if. Во избежания подобных проблем с undefined
нужно использовать директиву 'use strict'
, тогда при обращении к необъявленной функции foo будет ошибка. Без использования этой директивы, результат будет разница в зависимости от внутренней реализации стандарта в том или ином браузере.
'use strict'
console.log(foo); // undefined
if(true) {
console.log(foo()); // "hello"
function foo() {
return 'hello';
}
}
console.log(foo()); // "hello"
https://stackoverflow.com/questions/10069204/function-declarations-inside-if-else-statements
Виртуальный выделенный сервер (VDS) становится отличным выбором
я начинающий веб-разработчик и на данный момент прохожу тестовое задание для вступления в компаниюСуть проблемы заключается в том, что тест...
Подскажите где найти пример как сделать Save to Drive Button на React, никак не могу найтиСпасибо
Как сделать что бы при каждом нажатию на кнопку переменная увеличивалось
Хочу сделать скрипт, который бы уведомлял меня о том, что заканчиваются деньги на счёте рекламной компанииДоступ к расходам нашёл, через...