Что есть глобальные переменные: переменные "видимые" в любой точке выполнения программы, везде из можно прочитать и перезаписать. Обычно глобальные переменные определяются в самом начале программы, вне всяких блоков ({}) в случае 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 и других области останется глобальной даже внутри циклов
Выводы, кратко
Локальные переменные в javascript
для переменных используемых в зоне глобальной видимости не важно наличие 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), ошибка при обращении