Виновато ключевое слово var
. Обратите внимание, что это
var x = ...
является переменной декларацией , тогда как эта
x = ...
является выражением выражения . Выражение выражения возвращает значение. Декларации нет. Объявление, которое содержит инициализацию с некоторым выражением, инициализирует переменную, но значение инициализатора не становится значением объявления (поскольку объявления не имеют значения).
Все эти «возвраты» не определены:
var a = document.getElementsByTagName('div')
var b = document.getElementsByTagName('div')[0]
Все они возвращают что-то (массив div или первый div):
document.getElementsByTagName('div')
document.getElementsByTagName('div')[0]
a = document.getElementsByTagName('div')
b = document.getElementsByTagName('div')[0]