Как работает область видимости и блок в JavaScript? - PullRequest
0 голосов
/ 22 апреля 2020

Я новичок ie в JavaScript и пытаюсь узнать об Объектах и ​​для ... в oop.

Затем я попробовал этот код в браузере:

const dad = {
    gender: 'male',
    age: 53
}

for(let prop in dad){
    console.log(prop, dad[prop]);
}

Он показал результат один раз, но когда я снова запустился, консоль говорит:

Uncaught SyntaxError: Identifier 'dad' has already been declared

Я попытался выполнить поиск в Google и прочитать о области видимости и области видимости блока, но до сих пор еще не совсем понял

Когда я пытался заблокировать код с помощью внешней области видимости (захватить код в {}) или поместить код в функцию, он хорошо работает.

Пожалуйста, помогите мне понять это

1 Ответ

0 голосов
/ 22 апреля 2020

Консоль выполняет фрагменты кода в глобальной области видимости. Когда вы запускаете const dad в первый раз, он объявляет глобальную переменную. Теперь вы можете ссылаться на dad в следующем коде. Когда вы пытаетесь запустить его второй раз, он жалуется, что он уже объявлен - как если бы вы написали

const dad = 1;
const dad = 2;

Если вы хотите запустить fre sh, перезагрузите страницу.

...