PDA

Просмотр полной версии : Использование слова var


Dvaman
03.10.2005, 18:06
Давно интересует непринципиальный вопрос по использования слова var. В умных книжках постоянно перед использованием переменной(ых) ее объявляют типа var x; потом x=0; или просто var x=0;
Сколько себя помню вне функций никогда его не писал, и все работало.
В какой ситуации данное пренебрежение даст сбой?

iNils
03.10.2005, 18:09
Почуствуй разницу
a = function () {
trace ("a: cx=" + cx);
cx = 5;
trace ("a: cx=" + cx);
};
cx = 4;
a ();
trace ("_root: cx=" + cx);
trace ("---------------------");
b = function () {
trace ("b: dx=" + dx);
var dx = 15;
trace ("b: dx=" + dx);
};
dx = 14;
b ();
trace ("_root: dx=" + dx);

Dvaman
03.10.2005, 18:23
Внутри функций не спорю, сам использую (чтобы при выходе удалять временные переменные)
Я про
Сколько себя помню вне функций никогда его не писал, и все работало.
когда-то писал, потом забил - и так работает.

iNils
03.10.2005, 18:32
И правильно, толку от использования var вне функции нет.

Dvaman
03.10.2005, 18:41
еще маленький вопрос.

for (var i = 0; i<10; i++) {
trace("message");
}
trace(i); // равна 10 а не undefined;

Почему не происходит уничтожение i при выходе из for?

iNils
03.10.2005, 18:45
Потому что вне функции используешь
a = function () {
for (var i = 0; i < 10; i++) {
trace ("message");
}
};
a ();
trace (i);
trace ("-------------------------")
a = function () {
for (i = 0; i < 10; i++) {
trace ("message");
}
};
a ();
trace (i);

KidsKilla
03.10.2005, 18:45
у for нет области видимости.

Dvaman
03.10.2005, 18:54
получается: если for не вложен в функуцию писать в нем var не имеет смысла.

iNils
03.10.2005, 18:55
Абсолютно верно.

Dvaman
03.10.2005, 19:05
ну слава богу, можно спать спокойно :)

iNils
03.10.2005, 20:20
Какой спать, а работать кто будет? :)