Javascript.RU

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

См. также


Автор: Мараторий, дата: 28 января, 2010 - 16:35
#permalink

А почему следующая конструкция выдает синтаксическую ошибку?

if(var a=1) alert("ура");

Почему нельзя делать объявление переменной внутри if?


Автор: Гость (не зарегистрирован), дата: 10 февраля, 2010 - 01:40
#permalink

If предполагает сравнение чего-то с чем-то, а в данном примере "=" использыется как оператор сравнения, а как оператор присваивания.


Автор: Мараторий, дата: 10 февраля, 2010 - 02:37
#permalink

По вашей логике тоже самое без var не должно работать. А это не так.


Автор: Гость (не зарегистрирован), дата: 26 сентября, 2010 - 20:27
#permalink

Операцию присвоения можно использовать как логическое выражение, вот только возвращать она всегда будет true (за некоторыми исключениями)


Автор: Sundro (не зарегистрирован), дата: 19 мая, 2011 - 12:12
#permalink

Подписываюсь под каждым словом вышестоящим словом


Автор: B@rmaley.e><e, дата: 10 февраля, 2010 - 16:25
#permalink

Скорее всего в ECMA просто недоглядели. Или хотели сделать var в for объявлением переменной только внутри цикла.

В цикле for ключевое слово var является частью инструкции, а в синтаксисе условия оно не предусмотрено. Ну и использовать инструкции там, где просят выражение недопустимо.


Автор: Гость (не зарегистрирован), дата: 3 марта, 2010 - 12:04
#permalink

Может быть причина в том, что опреатор присваивания вроде неявно вызывает функцию GetValue(...). В случае такого присваивания var a = 1 она, по-моему, должна возвращать 1. А если так {a = 1}, то эта функция возвращает булев результат. Бред, конечно, но может так оно и работает )))


Автор: B@rmaley.e><e, дата: 3 марта, 2010 - 16:20
#permalink

Или так:
Внутри for var используется при инициализации значений. Там результат вычисления возвращать не нужно, а в if'е нужно оценить результат выражения.


Автор: Гость (не зарегистрирован), дата: 14 марта, 2010 - 23:07
#permalink

gотому что нужно так

while(true) {
alert('СУКИ!!!!!!!');
}

Автор: Гость (не зарегистрирован), дата: 10 февраля, 2010 - 01:42
#permalink

Прошу прощения, пропустил:
"... НЕ как оператор сравнения, а как оператор присваивания..."


Автор: StreetStrider (не зарегистрирован), дата: 27 июня, 2010 - 12:10
#permalink

Вероятно, в определении синтаксиса ошибка.
Вместо

var varname1 [= value1 [, varname2 [, varname3 ... [, varnameN]]]];

Должно быть

var varname1 [= value1 ][, varname2 [= value2 ][, varname3 [= value 3] ... [, varnameN [= valueN]]]];

Поправьте меня, если я не прав.


Автор: Гость (не зарегистрирован), дата: 10 февраля, 2011 - 19:40
#permalink

мало скобок )


Автор: Гость (не зарегистрирован), дата: 27 августа, 2010 - 09:18
#permalink
[css]
[html]
[js]
[php]
[/php][/js][/html]

[/css]


Автор: Girevik (не зарегистрирован), дата: 4 октября, 2010 - 10:35
#permalink

Обязательно ли указывать "var" при описании переменных?


Автор: B@rmaley.e><e, дата: 4 октября, 2010 - 23:42
#permalink

Если Вы не хотите, чтобы они попали в глобальную (или уровнем выше) область видимости, то обязательно.


Автор: Гость (не зарегистрирован), дата: 16 декабря, 2010 - 17:15
#permalink
[html]
[js]
[php]
[/php][/js][/html]

Автор: Гость - Владимир (не зарегистрирован), дата: 5 августа, 2011 - 01:41
#permalink

Описана ли где-либо в справочнике или стандарте конструкция "const"?

__________
Новичок в JS.


Автор: Гость (не зарегистрирован), дата: 12 сентября, 2011 - 08:22
#permalink

Подскажите как задать значение вот такой переменной

var data[User][email] = $( "#email" )

Например в PHP нужно поставить знак "\" для того чтобы символ не обрабатывался, а вот в Java не знаю и кавычки не помогают

думаю что в примере стоит указать как задавать значение необычным переменным


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
12 + 3 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Реклама

Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние темы на форуме
Forum
Последние комментарии