Каково различие между неопределенным и window.undefined в JavaScript?

Если a не определено, это работает:

if(window.a) {}

в то время как это бросает ошибку:

if(a)

Кто-то может объяснить почему?

6
задан Pops 13 April 2011 в 16:40
поделиться

1 ответ

window.a - это свойство window , и оно undefined . a - переменная, и она необъявленная .

Чтобы использовать переменную, вы должны сначала объявить ее с помощью оператора var . Поскольку вы не объявили a , интерпретатор выдает ошибку. Чтобы использовать свойства объекта, не требуется явного объявления. Крокфорд пишет в The Good Parts :

Если вы попытаетесь извлечь значение из объекта, и если у объекта нет члена с таким именем, Вместо этого он возвращает неопределенное значение.

10
ответ дан 10 December 2019 в 00:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: