var
Объявить переменную (или несколько) в текущей области видимости
Синтаксис
var varname1 [= value1 [, varname2 [, varname3 ... [, varnameN]]]];
Аргументы
- varnameN
- Имя для переменной
-
- valueN
- Начальное значение переменной, любое выражение
-
Описание, примеры
Область видимости переменной - текущая функция. Если переменная объявлена вне функции, то ее область видимости - глобальный объект window.
Здесь javascript похож на традиционные языки программирования
var a = 5
function go() {
var a = 6
}
go() // значение внешней переменной a не меняется
В отличие от большинства языков, javascript блок не задает область видимости.
var i = 5
{
var i
i = 6
}
alert(i) // значение i поменялось
Переменная внешней функции видна во внутренней, благодаря наличию замыканий.
var num_hits = 0, cust_no = 0
var t
|
А почему следующая конструкция выдает синтаксическую ошибку?
if(var a=1) alert("ура");Почему нельзя делать объявление переменной внутри if?
If предполагает сравнение чего-то с чем-то, а в данном примере "=" использыется как оператор сравнения, а как оператор присваивания.
По вашей логике тоже самое без var не должно работать. А это не так.
Операцию присвоения можно использовать как логическое выражение, вот только возвращать она всегда будет true (за некоторыми исключениями)
Подписываюсь под каждым словом вышестоящим словом
Скорее всего в ECMA просто недоглядели. Или хотели сделать var в for объявлением переменной только внутри цикла.
В цикле for ключевое слово var является частью инструкции, а в синтаксисе условия оно не предусмотрено. Ну и использовать инструкции там, где просят выражение недопустимо.
Может быть причина в том, что опреатор присваивания вроде неявно вызывает функцию GetValue(...). В случае такого присваивания var a = 1 она, по-моему, должна возвращать 1. А если так {a = 1}, то эта функция возвращает булев результат. Бред, конечно, но может так оно и работает )))
Или так:
Внутри for var используется при инициализации значений. Там результат вычисления возвращать не нужно, а в if'е нужно оценить результат выражения.
gотому что нужно так
while(true) { alert('СУКИ!!!!!!!'); }Прошу прощения, пропустил:
"... НЕ как оператор сравнения, а как оператор присваивания..."
Вероятно, в определении синтаксиса ошибка.
Вместо
Должно быть
Поправьте меня, если я не прав.
мало скобок )
[/css]
Обязательно ли указывать "var" при описании переменных?
Если Вы не хотите, чтобы они попали в глобальную (или уровнем выше) область видимости, то обязательно.
Описана ли где-либо в справочнике или стандарте конструкция "const"?
__________
Новичок в JS.
Подскажите как задать значение вот такой переменной
Например в PHP нужно поставить знак "\" для того чтобы символ не обрабатывался, а вот в Java не знаю и кавычки не помогают
думаю что в примере стоит указать как задавать значение необычным переменным
Отправить комментарий
Приветствуются комментарии:- Полезные.
- Дополняющие прочитанное.
- Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.Для остальных вопросов и обсуждений есть форум.