JavaScript проверяет, существует ли переменная (определена / инициализирована)

Заметки

Вышесказанное верно при использовании var для определения переменной , в отличие от let который:

объявляет локальную переменную области видимости блока, необязательно инициализируя ее значением.

отличается от ключевого слова var , которое определяет переменную глобально или локально для всей функции независимо от области видимости блока.

На верхнем уровне программ и функций let , в отличие от var , не создается свойство глобального объекта.

Для полноты: константные константы по определению не являются на самом деле переменными (хотя их содержание может быть); более актуально:

Глобальные константы не становятся свойствами объекта окна, в отличие от переменных var . Требуется инициализатор для константы; то есть вы должны указать его значение в том же операторе, в котором он объявлен.

Значение константы не может быть изменено путем переназначения, и оно не может быть повторно объявлено.

Объявление const создает доступную только для чтения ссылку на значение. Это не означает, что значение, которое оно содержит, является неизменным, просто то, что идентификатор переменной не может быть переназначен.

Так как переменные let или константы const никогда не являются свойствами какого-либо объекта, унаследовавшего метод hasOwnProperty() , его нельзя использовать для проверки их существования.

Относительно доступности и использования hasOwnProperty() :

Каждый объект, произошедший от Object, наследует метод hasOwnProperty() . […] в отличие от оператора in , этот метод не проверяет цепочку прототипов объекта.

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