Обычно глобальные переменные определяются в самом начале программы, вне всяких блоков ({})
в случае Js, они задаются после script, или все всяких функций
hello
=
Hello
;
//задаем глобальную переменную и проверяем ее
document
.
writeln
(->1
+
hello
+
every one
);
//->1 Hello every one
if(true
)
//if(false)
{
var
hello
=
Hello Dolly and
;
//это тоже глобальная
world
=
world
;
//глобальная
var
cont
=
, we continue
//глобальная
document
.
writeln
(->1.2
+
hello
+
world
+
cont
+
);
//1.2 Hello Dolly and world, we continue
}
document
.
writeln
(->2
+
hello
+
world
+
cont
+
);
//->2 Hello Dolly and world, we continue
при условии true мы получаем ответ
->1 Hello every one
->1.2 Hello Dolly and world, we continue
->2 Hello Dolly and world, we continue
выполнение обрывается
Таким образом, получается, что на глобальную область использование var никак не влияет. Переменная, упомянутая в script вне процедур считается глобальной даже, если она заключения в скобочки {} блока if while for и других области останется глобальной даже внутри циклов
Выводы, кратко
- для переменных используемых в зоне глобальной видимости не важно наличие var.
- Блоки после if while for не создают локальной зоны видимости, (как это происходит в других языках)
boy
=
Jhone
;
did
=
kills Kenny
;
//итак мы имеем 2 глобальных переменных
function
doit
()
{
//уже прошла печать --1, и мы меняем данные меняем данные
var
boy
=
Gary
;
//создаем локаль
did
=
helps Anny
;
//изменяем глобаль
;
document
.
writeln
(--2
+
boy
+
+
did
+
);
//--2 Gary helps Anny
;
//теперь внутри функции зададим локальную и глобальные переменные
var
good
=
he was a good boy
;
//локаль!
bad
=
he likes a bad girls
;
//глобаль
}
;
document
.
writeln
(--1
+
boy
+
+
did
+
);
//--1 Jhone kills Kenny
doit
();
//--2 Gary helps Anny
document
.
writeln
(--3
+
boy
+
+
did
+
);
//--3 Jhone helps Anny
;
if(!
true
)
//if(!false)
{
document
.
writeln
(--4
+
good
);
//выполнение этого блока вызовет ошибку.
//мы сейчас находимся вне локальной области видимости
//функции doit(), поэтому для нас заданной через var
//переменной good просто не существует
}
document
.
writeln
(--5
+
bad
);
//--5 he likes a bad girls
Результат:
1 Jhone kills Kenny
--2 Gary helps Anny
--3 Jhone helps Anny
--5 he likes a bad girls
ВыводЛокальные переменные в javascript
- var работает внутри функции, объявляя локальную переменную. Это основная его задача
- Яваскрип сильно отличается от си уже тем что только(?) внутри функции возможны локальные переменные.
- использование var или не использование в глобальной области видимости зависит только от вашего личного опыта. Но по мне так лучше не ленится. в перле это называется use strict
Важно. Во-первых, “вары” нельзя удалить (с помощью delete). Во-вторых, их конкретизация происходит на “нулевой строке” (до начала работы “построчно”), где им сразу же присваивается значение undefined, и только потом переменная может получить (а может не получить) новое значение:
var glb_1 = 1;
if (false) {var glb_2 = 2; glb_3 = 3;}
alert(glb_1) // конкретизирована и получила значение 1
alert(glb_2) // конкретизировна и получила значение ‘undefined’
alert(glb_3) // вообще не переменная (нет var), ошибка при обращении
Глобальные переменные в javascript
Что есть глобальные переменные: переменные "видимые" в любой точке выполнения
программы, везде из можно прочитать и перезаписать.
Обычно глобальные переменные определяются в самом начале программы, вне всяких
блоков ({})
в случае Js, они задаются после script, или все всяких функций
hello = "Hello"; //задаем глобальную переменную и проверяем ее
document.writeln("->1 "+ hello +" every one
");//->1 Hello every one
If(true)
//if(false)
{
var hello = "Hello Dolly and "; //это тоже глобальная
world = "world"; //глобальная
var cont = ", we continue" //глобальная
document.writeln("->1.2 " + hello + world + cont+"
");
//1.
}
document.writeln("->2 " + hello + world + cont+"
");
//->2 Hello Dolly and world, we continue
При условии true мы получаем ответ
->1 Hello every one
->1.2 Hello Dolly and world, we continue
->2 Hello Dolly and world, we continue
Выполнение обрывается
Таким образом, получается, что на глобальную область использование var никак не влияет. Переменная, упомянутая в script вне процедур считается глобальной даже, если она заключения в скобочки {} блока if while for и других области останется глобальной даже внутри циклов
Выводы, кратко
* для переменных используемых в зоне глобальной видимости не важно наличие var.
* Блоки после if while for не создают локальной зоны видимости, (как это
происходит в других языках)
Локальные переменные- переменные задаваемые внутри исполняемого блока (функции) и не виляют на другие функции. и внешнюю среду, т.е. глобальную область.
Boy = "Jhone";
did = "kills Kenny"; //итак мы имеем 2 глобальных переменных
function doit()
{
//уже прошла печать --1, и мы меняем данные меняем данные
var boy = "Gary"; //создаем локаль
did = "helps Anny"; //изменяем глобаль
;
document.writeln("--2 " + boy + " " + did + "
");
//--2 Gary helps Anny
;
//теперь внутри функции зададим локальную и глобальные переменные
var good = "he was a good boy
";//локаль!
bad = "he likes a bad girls
";//глобаль
}
;
document.writeln("--1 " + boy + " " + did + "
");
//--1 Jhone kills Kenny
doit();
//--2 Gary helps Anny
document.writeln("--3 " + boy + " " + did + "
");
//--3 Jhone helps Anny
;
if(!true)
//if(!false)
{
document.writeln("--4 " + good);
//выполнение этого блока вызовет ошибку.
//мы сейчас находимся вне локальной области видимости
//функции doit(), поэтому для нас заданной через var
//переменной good просто не существует
}
document.writeln("--5 " + bad);
//--5 he likes a bad girls
Результат:
1 Jhone kills Kenny
--2 Gary helps Anny
--3 Jhone helps Anny
--5 he likes a bad girls
Локальные переменные в javascript
* var работает внутри функции, объявляя локальную переменную. Это основная его задача
* Яваскрип сильно отличается от си уже тем что только(?) внутри функции возможны
локальные переменные.
* использование var или не использование в глобальной области видимости зависит
только от вашего личного опыта. Но по мне так лучше не ленится. в перле это
называется use strict
>>>для переменных используемых в зоне глобальной видимости не важно наличие var
Важно. Во-первых, “вары” нельзя удалить (с помощью delete). Во-вторых, их конкретизация происходит на “нулевой строке” (до начала работы “построчно”), где им сразу же присваивается значение undefined, и только потом переменная может получить (а может не получить) новое значение:
Var glb_1 = 1;
if (false) {var glb_2 = 2; glb_3 = 3;}
Alert(glb_1) // конкретизирована и получила значение 1
alert(glb_2) // конкретизировна и получила значение ‘undefined’
alert(glb_3) // вообще не переменная (нет var), ошибка при обращении
Переменные служат "контейнерами" для хранения информации.
Вы Помните Школьную Алгебру?Вы помните школьную алгебру? x=5, y=6, z=x+y
Вы помните, что буква (например x) могла бы использоваться для хранения значения (например 5), и что вы могли бы использовать информацию выше, чтобы вычислить, что значение z равно 11?
Эти буквы называются переменными , и переменные могут использоваться для хранения значений (x=5) или выражений (z=x+y).
Переменные JavaScriptТак же как в алгебре, переменные JavaScript используются для хранения значений или выражений.
Переменная может иметь короткое имя, например x, или более информативное имя, например carname (название автомобиля).
Правила для имен переменных JavaScript:
- Имена переменных чувствительны к регистру (y и Y это две разных переменных)
- Имена переменных должны начинаться с буквы или символа подчеркивания
Замечание: Поскольку JavaScript чувствителен к регистру, имена переменных также чувствительны к регистру.
ПримерЗначение переменной может изменяться во время выполнения скрипта. Вы можете ссылаться на переменную по ее имени для отображения или изменения ее значения.
Объявление (Создание) Переменных JavaScriptСоздание переменных в JavaScript более часто называют "объявлением" переменных.
Вы объявляете переменные JavaScript с помощью ключевого слова var :
После выполнения предложений выше, переменная x будет содержать значение 5 , и carname будет содержать значение Мерседес .
Замечание: Когда вы присваиваете текстовое значение переменной, заключайте его в кавычки.
Замечание: Если вы объявляете переменную повторно, она не потеряет свое значение.
Локальные Переменные JavaScriptПеременная, объявленная внутри функции JavaScript становится ЛОКАЛЬНОЙ и будет доступна только в пределах этой функции. (переменная имеет локальную область видимости).
Вы можете объявлять локальные переменные с одним и тем же именем в различных функциях, потому что локальные переменные распознаются в функции, в которой они объявлены.
Локальные переменные уничтожаются при выходе из функции.
Вы узнаете больше о функциях в последующих уроках JavaScript.
Глобальные Переменные JavaScriptПеременные объявленные вне функции становятся ГЛОБАЛЬНЫМИ , и все скрипты и функции на странице могут к ним обращаться.
Глобальные переменные уничтожаются когда вы закрываете страницу.
Если вы объявляете переменную, не используя "var", переменная всегда становится ГЛОБАЛЬНОЙ .
Присваивание Значений Необъявленным Переменным JavaScriptЕсли вы присваиваете значения переменным, которые еще не были объявлены, переменные будут объявлены автоматически как глобальные переменные.
Эти предложения:
Вы узнаете больше об операторах в следующем уроке JavaScript.
Продолжаем изучать тему функций в JavaScript . Здесь мы затронем понятие область видимости переменных . Оно тесно связано с функциями , поэтому его Важно понимать .
Следует усвоить (и различать эти понятия) лишь одно - то, что переменные бывают глобальные и локальные .
Что такое глобальные переменные? Рассмотрим пример...
var global = 21 ; /* Создаем Глобальную переменную */
function
myFun
() /* Создаем функцию, которая выводит на экран переменную */
{
document.write
(global
);
}
myFun (); /* Вызываем функцию */
В этом примере мы создали переменную global , которая является глобальной - теперь мы можем ее использовать - например, внутри функции, как Вы сами можете убедиться.
В этом и заключается суть глобальных переменных - они создаются один раз (скажем, в начале скрипта, как Вы видели в примере) и потом используются в коде программы там, где это необходимо (в массивах, функциях и т.д.) .
Что такое локальные переменные? И снова рассмотрим пример...
function
myFun
_2
() /* Создаем функцию */
{
var local
=
42
;
document.write
(local
);
}
myFun _2(); /* Вызываем функцию */
Этот пример иллюстрирует создание локальной переменной local . Она локальная, так как создана внутри функции . И только внутри нее может использоваться.
Если эту переменную попробовать вывести за пределами функции, то в окне браузера мы ничего не увидим.
function
myFun
_2
() /* Создаем функцию */
{
var local
=
42
; /* Создаем Локальную переменную */
document.write
(local
);
}
document.write (local ); /* Пробуем вывести Локальную переменную за пределами функции */
На этих простых примерах мы рассмотрели понятие область видимости переменных в JavaScript . Еще раз озвучим его суть: если мы создаем переменную внутри какой-либо функции, то она является локальной, и работать с ней мы сможем только внутри этой функции.
А переменные, созданные вне функции, называются глобальными и могут использоваться где угодно, в том числе и внутри функции .