Переменную необходимо объявить до того, как она будет использоваться в выражении. Если использовать необъявленную переменную до ее объявления, как показано в следующем примере, значение этой переменной будет undefined и скрипт вызовет ошибку:
getURL(myWebSite);
myWebSite = "https://flashdocs.net/";
Команда объявления переменной myWebSite должна быть сначала, чтобы переменная в команде getURL могла получить значение.
В скрипте значение переменной можно изменить в любое время. Тип данных, содержащийся в переменной, влияет на то, как и когда переменная изменится. Элементарные типы данных, (например, строки, числа...) передаются по значению. Это означает, что действительное содержание переменной передается в переменную.
В следующем примере переменной x присваивается число 15, а потом это же значение копируется в y. Когда x меняется на 30 (3-я стока), значение y останется 15, т.к. y не "смотрит" в x какое у него значение, y содержит значение x, которое получено во 2-ой строке кода.
var x = 15;
var y = x;
var x = 30;
В другом примере переменная inValue содержит первоначальное значение 3. Это значение (т.е. действительное значение) передается в функцию sqrt, которая возвращает значение 9:
function sqrt(x){
return x * x;
}
var inValue = 3;
var out = sqrt(inValue);
Значение переменной inValue не меняется.
Тип данных object может содержать большое и сложное количество информации, которое переменная с таким типом данных не может хранить, как действительное значение. Поэтому переменная содержит ссылку на значение. Эта ссылка что-то типа псевдонима, указывающего на содержание значения. Когда переменной необходимо узнать свое значение, ссылка спросит у содержания и вернет ответ без переноса значения в переменную.
Ниже представлен пример передачи по ссылке:
var myArray = ["Ivan", "Flash"];
var newArray = myArray;
myArray[1] = "Grinders";
trace(newArray);
Выше приведенный коде создаст объект массив (Array) с именем myArray и состоящий из двух элементов. Затем создается переменная newArray получающая ссылку на myArray. Когда второй элемент myArray изменится, это воздействует на все переменные, в которых имеется ссылка на него. Команда trace выведет в окне Output следующее: Ivan, Grinders.
В следующем примере myArray содержит в себе объект массив, следовательно передается в функцию zeroArray по ссылке. Функция zeroArray изменит содержание массива в myArray.
function zeroArray (theArray){
var i;
for (i=0; i < theArray.length; i++) {
theArray[i] = 0;
}
}
var myArray = new Array();
myArray[0] = 1;
myArray[1] = 2;
myArray[2] = 3;
zeroArray(myArray);
Функция zeroArray принимает объект массив в качестве параметра и устанавливает все элементы массива в 0. Она может изменить массив, т.к. массив передается по ссылке