Оглавление

11.4. Глобальные и локальные переменные

Глобальные переменные — это переменные, объявленные вне функции. Глобальные переменные видны в любой части программы, включая функции.
Локальные переменные — это переменные, объявленные внутри функции. Локальные переменные видны только внутри тела функции. Если имя локальной переменной совпадает с именем глобальной переменной, то все операции внутри функции осуществляются с локальной переменной, а значение глобальной не изменяется.
Механизм, регулирующий такое поведение, называется областью видимости переменных. Он продемонстрирован в листинге 16.

 

Листинг 16. Глобальные и локальные переменные


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
         "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
 <title>Глобальные и локальные переменные</title>
 <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script type="text/javascript">
<!--
function f_Sum() {
   var Var1 = 5;
   var Num1 = 1;
   document.write("Локальная переменная Var1 = " + Var1 + "<br>");
   document.write("Локальная переменная Num1 = " + Num1 + "<br>");
   document.write("Глобальная переменная Var2 = " + Var2 + "<br>");
   return Var1+Var2;
}
//-->
</script>
</head>
<body>
<script type="text/javascript">
<!--
var Var1, Var2, Var3;
Var1 = 10;
document.write("Глобальная переменная Var1  = " + Var1 + "<br>");
Var2 = 7;
Var3 = f_Sum();
document.write("Сумма Var1 + Var2 = " + Var3 + "<br>");
document.write("Глобальная переменная Var1 осталась = ");
document.write(Var1 + "<br>");
document.write("Локальная переменная Num1 = " + typeof Num1);
document.write(" , т. е. не видна вне тела функции");
//-->
</script>
</body>
</html>

 

В окне Web-браузера получим следующий результат:

 

Глобальная переменная Var1 = 10
Локальная переменная Var1 = 5
Локальная переменная Num1 = 1
Глобальная переменная Var2 = 7
Сумма Var1 + Var2 = 12
Глобальная переменная Var1 осталась = 10
Локальная переменная Num1 = undefined , т. е. не видна вне тела функции

 

 

Как видно из листинга 16, переменная Num1, объявленная внутри функции f_sum(), не доступна вне функции. Глобальную переменную var1 не затронуло объявление внутри функции одноименной локальной переменной и ее изменение. А глобальная переменная var2 видна внутри функции f_sum().

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити