Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   странное поведение переменных (https://javascript.ru/forum/misc/22181-strannoe-povedenie-peremennykh.html)

qwertyuiop10 09.10.2011 12:00

странное поведение переменных
 
я эксперементировал с объявлением переменных:
var a=0;
b=0;
var c=0;
d=0;
function showVar(){
alert(a+"--"+b); //undefined--undefined
var a=1;
var b=1;
document.write("a="+a+" b="+b);
}
function hideVar(){
alert(c+"--"+d); // 0--0
c=1;
d=1;
document.write("c="+c+" d="+d);
}
showVar();
hideVar();
document.write("a="+a+" b="+b+" c="+c+" d="+d);

я не понимаю, прчему алерты в функциях выдают разные значения, ведь перед ними в функции ничего нет, можете объяснить?

qwertyuiop10 09.10.2011 12:10

всё, нашел в подр. руководстве:
"Локальная переменная определена во всем теле функции, значит, глобальная переменная с тем же именем скрыта во всем теле функции. Хотя локальная переменная определена везде, до выполнения инструкции var она не инициализирована."


Часовой пояс GMT +3, время: 03:43.