Некоторое время назад я ответил на разницу между использованием ключевого слова VAR при определении переменных. Давайте рассмотрим это.
1. Переменные, определяемые добавлением VAR в область функции, являются локальными переменными, а те, которые определены без VAR, становятся глобальными переменными.
Используйте var для определения:
var a = 'hello world'; function bb () {var a = 'hello bill'; console.log (a); } bb () // 'hello bill'console.log (a); //'Привет, мир'Не используя определение VAR:
var a = 'hello world'; function bb () {a = 'hello bill'; console.log (a); } bb () // 'hello bill'console.log (a); // 'Привет, Билл'2. При глобальном объеме переменные, определенные с помощью VAR, не могут быть удалены, переменные, определенные без VAR, могут быть удалены. Это означает, что неявные глобальные переменные являются строго не реальными переменными, а атрибуты глобальных объектов, потому что атрибуты могут быть удалены с помощью удаления, а переменные не могут быть.
3. Определение переменных с использованием VAR также улучшит объявления переменных, т.е.
Используйте var для определения:
функция hh () {console.log (a); var a = 'hello world';} hh () // не определенНе используя определение VAR:
функция hh () {console.log (a); a = 'hello world';} hh () // 'a не определено'Это объявление переменных, определенных с использованием VAR заранее.
4. В режиме ES5 «Использование строгого», если переменная не определена с использованием VAR, сообщается об ошибке.