Как говорится в этих двух обсуждениях:
глобальная переменная javascript с 'var' и без 'var' [дубликат]< /а>
Разница между использованием var и не использованием var в JavaScript а>
Не должно быть никакой разницы, когда глобальная переменная с 'var' или нет.
Однако следующие два фрагмента кода дают разные результаты.
Первый:
if(h == undefined){
h = 4;
}
Второй:
if(h == undefined){
var h = 4;
}
С первым я получу сообщение об ошибке: «ReferenceError: h не определен».
Зато со вторым все в порядке.
Действительно странно то, что var h = 4;
стоит после h == undefined
, но это позволяет каким-то образом инициализировать глобальную переменную.