М Б С http://mbs-forum.ru/ |
|
Javascript Global Varibles http://mbs-forum.ru/topic1238.html |
Страница 1 из 1 |
Автор: | mbs [ 29-06, 14:48 ] |
Заголовок сообщения: | Javascript Global Varibles |
Javascript Global Varibles - локальные и глобальные переменные в javascript Глобальные переменные в 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.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), ошибка при обращении Автор: Zeroglif Сайт автора: http://www.karpati.ru/ При перепечатке статьи ссылка на http://mbs.flybb.ru/ обязательна |
Страница 1 из 1 | Часовой пояс: UTC + 4 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |