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?
If предполагает сравнение чего-то с чем-то, а в данном примере "=" использыется как оператор сравнения, а как оператор присваивания.
По вашей логике тоже самое без var не должно работать. А это не так.
Операцию присвоения можно использовать как логическое выражение, вот только возвращать она всегда будет true (за некоторыми исключениями)
Подписываюсь под каждым словом вышестоящим словом
Скорее всего в ECMA просто недоглядели. Или хотели сделать var в for объявлением переменной только внутри цикла.
В цикле for ключевое слово var является частью инструкции, а в синтаксисе условия оно не предусмотрено. Ну и использовать инструкции там, где просят выражение недопустимо.
Может быть причина в том, что опреатор присваивания вроде неявно вызывает функцию GetValue(...). В случае такого присваивания var a = 1 она, по-моему, должна возвращать 1. А если так {a = 1}, то эта функция возвращает булев результат. Бред, конечно, но может так оно и работает )))
Или так:
Внутри for var используется при инициализации значений. Там результат вычисления возвращать не нужно, а в if'е нужно оценить результат выражения.
Ну язык значит такой, что тут поделаешь? -__-
Обязательно ли указывать "var" при описании переменных?
Если Вы не хотите, чтобы они попали в глобальную (или уровнем выше) область видимости, то обязательно.
Если объявление (глобальной) без присвоения значения, то обязательно.
Если переменная локальная - обязательно.
Почему в данном примере в консоль выведется сообщение undefined?
убери инициализацию переменной a в теле функции (var перед a).
правильно так:
Почему var o = {x:7} //=>undefined ?
var x = 7 //=>undefined?
Chrome на эти инструкции возвращает undefined. Проблемы в этом нет, но просто жутко интересно, откуда оно берется.
Я думаю надо сменить на сайте фон. Он грузовой какой то. У него даже запах есть стухшего энтузиазма.
Есть новый сайт с новым дизайном. Постараюсь ускорить его разработку, он в принципе почти в бете уже, только доступ по "инвайтам".
Добрый день подскажите пожалуйста почему вот так выводится значение переменной y
А если в функцию вставить if, то не выдает undefined, до тех пор пока мы не объявим переменную в самой функции. Почему он не берет значение переменной y из глобальной видимости?
В первом примере не закрыта скобка у функции fu.
Вот так
Выводит 10, как и положено...
На второй вопрос
> Почему он не берет значение переменной y из глобальной видимости?
Отвечаю - потому, что в теле функции присутствует
Т.е. свое объявление переменной y.
Помогите пожалуйста, в java вообще не соображаю, как переменную из php поставить в замен '1 день' и 100? P.S. в коментах моя жалкая попытка.
var data = google.visualization.arrayToDataTable([
['дни', 'Сумарное время'],
['1 день', 100],
['2 день', 20],
['9 день', 20]
// [ ' var a = ' <?php echo $row['day'];?>; '',
// var b = ' <?php echo $row['total_time'];?>; ']
] );
Это учебник по JavaScript... Про PHP ответят в другом месте.
Заранее извиняюсь за нубские вопросы.
1) Почему в данном случае инкремент выдаёт NaN?
2) Получается, что нужно обязательно проводить инициализацию переменной, а не просто её объявление? ( var counter = 0; || var counter = new Number(); )?
Этот вопрос более уместен тут
http://javascript.ru/arithmetic
Но там же и написано
-------------------------
++ (Инкремент)
Увеличивает переменную, к которой применен, на единицу.
-------------------------
Делаем вывод - это сокращенная форма от
или
И с неопределенной переменной эти операции будут давать
counter is not defined
что-то измениться если переменные объявлять без var?
т.е. есть разница между var a = "abc" и a = "abc" ?
Бывает js не работает при загрузке web-странички через Notepad++, но при этом точно такой же код хорошо отображается в этом конструкторе:
https://codepen.io
С чем это связано?
Как в js нажимая на кнопку тебя перебрасывало на рандомную гиперссылку?