13.05.2012, 05:26
|
Аспирант
|
|
Регистрация: 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
|