X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Глобальные и локальные переменные
people2010
people2010
Topic Starter сообщение 3.8.2010, 2:28; Ответить: people2010
Сообщение #1


Прочитал, что если в теле функции, например переменная res используется без ключевого слова var,но если в этом теле функции встретится хоть 1 раз var res, все res хоть они использовались как глобальные потому-что внутри тела не писали ключевое слово var, но вконце тела было втстречено var res то использ0ование как глобальную перемнную перечёркивается, и считается что мы работаем внутри тела со всеми переменными res как с локальными.
Вот написал код,что-то не вижу этого правила описанного выше.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Тренировка</title>
<link rel="stylesheet" type="text/css" href="trenirovka.css">
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="otd_file.js"></script>

</head>
<script type='text/javascript'>

//a=7; b = 8;
res = 252;

function a(a,b){
if(a>b){
res = 1;
} else if(a<b){
res = -1;
}else{
var res = 0;
}
return res;
}

a(5,6);
alert(res);

</script>
<body>
</body>
</html>
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Alcorn
Alcorn
сообщение 3.8.2010, 4:36; Ответить: Alcorn
Сообщение #2


[PHP]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title></title>
</head>
<script type='text/javascript'>

res=252;

function xxx() {
var res=0; // только внутри функции
//res=0; // глобально
alert(res);
}

xxx();
alert(res);

</script>
<body>
</body>
</html>
[/PHP]
Локальная var-переменная "переписывает" значения глобальной в области своей видимости, т.е. внутри функции xxx(), для остального внешнего кода глобальная переменная остаётся прежней.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
people2010
people2010
Topic Starter сообщение 3.8.2010, 14:37; Ответить: people2010
Сообщение #3


Если написать так:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Тренировка</title>
<link rel="stylesheet" type="text/css" href="trenirovka.css">
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="otd_file.js"></script>

</head>
<script type='text/javascript'>

//a=7; b = 8;
res = 252;

function a(a,b){
if(a>b){
res = 1;
} else if(a<b){
res = -1;
}else{
var res = 0;
}
return res;
}

alert(a(5,6));

</script>
<body>
</body>
</html>


В результате -1,вроде всё по плану, если же раскрыть коментарии не работает код,почему?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 3.8.2010, 14:44; Ответить: alexdrob
Сообщение #4


(people2010 @ 3.8.2010, 17:37) *
если же раскрыть коментарии не работает код,почему?

а вы посмотрите на название своей фукции и на имя первой переменной
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
people2010
people2010
Topic Starter сообщение 3.8.2010, 14:58; Ответить: people2010
Сообщение #5


А что, если выше объявлена переменная с именем а, занчит функцию нельзя назвать с именем а?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 3.8.2010, 15:02; Ответить: alexdrob
Сообщение #6


а откуда компьютер знает что в данном месте вы хотите сказать переменная или функуия))
поставьте Сашу мальчика и Сашу девочку и скажите Привет, Саша!
К кому вы обратились?)

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


 



RSS Текстовая версия Сейчас: 29.3.2024, 15:48
Дизайн