Javascript глобальная функция. JavaScript. Переменные (глобальные, локальные, константы). Присвоение значения переменным

  • 30.11.2023

Переменные

Объявление переменных

Прежде чем использовать переменную в JavaScript, ее необходимо объявить. Переменные объявляются с помощью ключевого слова var следующим образом:

Var i; var sum;

Один раз использовав ключевое слово var, можно объявить несколько переменных:

Объявление переменных можно совмещать с их инициализацией:

Var message = "привет"; var i = 0, j = 0, k = 0;

Если начальное значение в инструкции var не задано, то переменная объявляется, но ее начальное значение остается неопределенным (undefined), пока не будет изменено программой.

Если вы имеете опыт использования языков программирования со статическими типами данных, таких как C# или Java, то можете заметить, что в объявлениях переменных в языке JavaScript отсутствует объявление типа. Переменные в языке JavaScript могут хранить значения любых типов. Например, в JavaScript допускается присвоить некоторой переменной число, а затем этой же переменной присвоить строку:

Var i = 10; i = "hello";

С помощью инструкции var можно объявить одну и ту же переменную несколько раз. Если повторное объявление содержит инициализатор, то оно действует как обычная инструкция присваивания.

Если попытаться прочитать значение необъявленной переменной, JavaScript сгенерирует ошибку. В строгом режиме, предусмотренном стандартом ECMAScript 5, ошибка также возбуждается при попытке присвоить значение необъявленной переменной. Однако исторически и при выполнении не в строгом режиме, если присвоить значение переменной, не объявленной с помощью инструкции var, то JavaScript создаст эту переменную как свойство глобального объекта, и она будет действовать практически так же, как корректно объявленная переменная. Это означает, что глобальные переменные можно не объявлять. Однако это считается дурной привычкой и может явиться источником ошибок, поэтому всегда старайтесь объявлять свои переменные с помощью var.

Область видимости переменной

Область видимости (scope) переменной - это та часть программы, для которой эта переменная определена. Глобальная переменная имеет глобальную область видимости - она определена для всей JavaScript-программы. В то же время переменные, объявленные внутри функции, определены только в ее теле. Они называются локальными и имеют локальную область видимости. Параметры функций также считаются локальными переменными, определенными только в теле этой функции.

Внутри тела функции локальная переменная имеет преимущество перед глобальной переменной с тем же именем. Если объявить локальную переменную или параметр функции с тем же именем, что у глобальной переменной, то фактически глобальная переменная будет скрыта:

Var result = "global"; function getResult() { var result = "local"; return result; }; console.log(getResult()); // Отобразит "local"

Объявляя переменные с глобальной областью видимости, инструкцию var можно опустить, но при объявлении локальных переменных всегда следует использовать инструкцию var.

Переменные служат "контейнерами" для хранения информации.

Вы Помните Школьную Алгебру?

Вы помните школьную алгебру? x=5, y=6, z=x+y

Вы помните, что буква (например x) могла бы использоваться для хранения значения (например 5), и что вы могли бы использовать информацию выше, чтобы вычислить, что значение z равно 11?

Эти буквы называются переменными , и переменные могут использоваться для хранения значений (x=5) или выражений (z=x+y).

Переменные JavaScript

Так же как в алгебре, переменные JavaScript используются для хранения значений или выражений.

Переменная может иметь короткое имя, например x, или более информативное имя, например carname (название автомобиля).

Правила для имен переменных JavaScript:

  • Имена переменных чувствительны к регистру (y и Y это две разных переменных)
  • Имена переменных должны начинаться с буквы или символа подчеркивания

Замечание: Поскольку JavaScript чувствителен к регистру, имена переменных также чувствительны к регистру.

Пример

Значение переменной может изменяться во время выполнения скрипта. Вы можете ссылаться на переменную по ее имени для отображения или изменения ее значения.

Объявление (Создание) Переменных JavaScript

Создание переменных в JavaScript более часто называют "объявлением" переменных.

Вы объявляете переменные JavaScript с помощью ключевого слова var :

После выполнения предложений выше, переменная x будет содержать значение 5 , и carname будет содержать значение Мерседес .

Замечание: Когда вы присваиваете текстовое значение переменной, заключайте его в кавычки.

Замечание: Если вы объявляете переменную повторно, она не потеряет свое значение.

Локальные Переменные JavaScript

Переменная, объявленная внутри функции JavaScript становится ЛОКАЛЬНОЙ и будет доступна только в пределах этой функции. (переменная имеет локальную область видимости).

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

Локальные переменные уничтожаются при выходе из функции.

Вы узнаете больше о функциях в последующих уроках JavaScript.

Глобальные Переменные JavaScript

Переменные объявленные вне функции становятся ГЛОБАЛЬНЫМИ , и все скрипты и функции на странице могут к ним обращаться.

Глобальные переменные уничтожаются когда вы закрываете страницу.

Если вы объявляете переменную, не используя "var", переменная всегда становится ГЛОБАЛЬНОЙ .

Присваивание Значений Необъявленным Переменным JavaScript

Если вы присваиваете значения переменным, которые еще не были объявлены, переменные будут объявлены автоматически как глобальные переменные.

Эти предложения:

Вы узнаете больше об операторах в следующем уроке JavaScript.

Здравствуйте! Сегодня у нас речь пойдет о области видимости переменных (что такое переменная читайте ). Дело в том, что когда вы создаете переменную в функции и ее имя совпадает с именем переменной вне функции, то вот тут могут быть различные интересные ситуации, связанные с глобальной и локальной областями видимости переменной.

Вот именно с этим мы с вами и будем разбираться в этом уроке.

Глобальная переменная

К глобальным относятся все переменные, которые вы создаете вне функции. И обязательно надо создавать переменную через ключевое слово var, если этого не сделать то переменная будет видна везде в программе и более того при включенном режиме strict mode это вызовет ошибку. Для того чтобы включить режим strict mode достаточно в начале вашего сценария написать строку «use strict». Это будет указывать интерпретатору JavaScript, что надо строго соблюдать стандарт JavaScript. Вот пример с использованием глобальной переменной

Var a =6; //глобальная переменная function double() { return alert(a*a); //использование глобальной переменной } double();

В примере объявлена глобальная переменная а, которой присвоено значение 6. В функции мы можем получить доступ к этой переменной и даже более того изменить ее значение и это значение у нее изменится везде.

Давайте рассмотрим пример, где значение глобальной переменной меняются в функции, а потом мы обращаемся к глобальной переменной вне функции и видим то значение, которое ей было установлено в самой функции.

Var a =6; function double() { a = 5; //меняем значение глобальной переменной в функции return alert(a*a); } double(a); //вызываем функцию document.write(a); //значение глобальной переменной

Как можно видеть из примера если вы в функции меняете значение глобальной переменной оно уже у нее остается везде как в функции, так и вне ее.

Локальная переменная.

Когда вы объявляете переменную в функции, то она становится локальной и к ней можно получить доступ только из функции. Стоит заметить, что операторы if/else , for, while, do…while не влияют на область видимость переменных.

Итак получается, что в функции можно получить доступ к глобальной переменной, а глобально вне функции нельзя получить доступ к локальной переменной, созданной в теле функции. Рассмотрим пример.

Function double() { var a =6; return alert(a*a); } double(); document.write(a); //пытаемся обратиться к локальной переменной

В примере глобально переменная не объявляется, а объявляется в функции, то есть локально. Затем вызываем функцию и пытаемся обратится к локальной переменной в результате ничего не получается, а в консоли видим ошибку, что переменная не определена.

И последний вариант это когда создается и глобальная переменная и локальная с одинаковым именем, что будет тогда. Давайте смотреть пример.

Var a =7; function double() { var a =6; return alert(a*a); } document.write(a);

Как видите здесь в функции создается как бы другая переменная несмотря на то, что ее имя совпадает с глобальной и в функции будет доступна именно локальная переменная она не сможет перезаписать глобальную, что и показывает этот пример.

Какой можно сделать из всего этого вывод. Это что нало стараться использовать и в функции и вне функции переменные с разными именами. Но знать про локальную и глобальную области видимости надо.

Итоги.

Переменная созданная вне функции является глобальной.

Из функции можно получить доступ к глобальной переменной и изменить ее значение.