Показать сообщение отдельно
  #34 (permalink)  
Старый 13.05.2012, 05:26
Аспирант
Отправить личное сообщение для person Посмотреть профиль Найти все сообщения от person
 
Регистрация: 27.06.2010
Сообщений: 49

Здесь рассказывается чем отличается переменная с var и без.

Тонкости ECMA-262-3. Часть 2. Объект переменных.

Цитата:
Часто, в различных статьях о JavaScript, можно видеть утверждения вроде: “глобальные переменные можно объявлять и с var (в глобальном контексте) и без var (в любом месте)”. Это не так. Запомните:

переменные объявляются только с ключевым словом var.

Присвоение же вроде:

a = 10;лишь создаёт очередное свойство (но не переменную) в глобальном объекте. “Не переменную” не в том смысле, что её нельзя изменить, а “не переменную” в понятии переменных в ECMAScript (которые затем также станут свойствами глобально объекта посредством VO(globalContext) === global, помним, да?).

А разница следующая (покажем на примере):

alert(a); // undefined
alert(b); // "b" is not defined

b = 10;
var a = 20;Всё, опять же, вытекает из VO и стадий его модификации (вход в контекст, исполнение контекста):
by Dmitry A. Soshnikov
Ответить с цитированием