Является ли переменная, называемая «имя», всегда определяемой в Javascript?
blockquote>Нет. Однако в браузерах есть глобальное имя, называемое
name
, которое является именем текущего окна. Это побочный продукт того, что глобальный объект JavaScript в браузерах является объектом Window. Немного объяснения:В JavaScript глобальные переменные на самом деле являются свойствами того, что называется глобальным объектом. В браузерах глобальный объект является объектом Window для страницы, поэтому он имеет всевозможные предопределенные свойства (и, следовательно, глобальные), связанные с ним, являющиеся объектом Window , включая, но не ограничиваясь этим, :
name
- имя текущего окнаtitle
- заголовок текущего окнаstatus
- (кроме большинства браузеров)document
- документ в текущем окнеwindow
- ссылка на глобальный объект (например, круговой reference)setTimeout
- функция, используемая для планирования того, что произойдет позже... и многие другие. Он также получает в него всевозможные другие вещи, такие как свойство для каждого элемента DOM, у которого есть
id
(имя свойства -id
, его значение - ссылка на элемент DOM), на некоторых браузерах То же самое верно для элементов DOM с свойствомname
и так далее. Это очень захламлено.