Переменные в JavaScript

Любой язык программирования манипулирует с памятью. С помощью операторов мы обращаемся к памяти, запрашиваем, обрабатываем и сохраняем данные обратно в память. Однако программист не может обращаться к памяти напрямую, так как JavaScript является языком высокого уровня. Для того, чтобы можно было работать с памятью существуют переменные (variables). Они делятся на примитивные и структурные.

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

Синтаксис создания переменной

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

Итак, синтаксис создания переменной следующий: var variable;. Здесь ключевое слово var является оператором объявления переменной, variable является именем переменной (ссылки на память) и может быть произвольным но должно соответствовать некоторым правилам.

Пример:

var x; // создание переменной без присвоения начального значения, но по умолчанию оно равно undefined
var y = 5; // создание переменной с присвоением значения
y = 5+10; // 15, обработка данных и сохранение результата в переменную
x = y+3; // 15+3 = 18 — результат, который будет сохранен в переменную x

Есть три типа ключевых слов, которые ставятся перед переменной:

  1. var — создает переменную без конкретной области видимости, к которой можно обращаться из глобального и локального контекста;
  2. let — создает переменную определенного контекста, из вне к ней доступ закрыт, а также не позволяет создать переменную с таким же именем в текущем контексте;
  3. const — это константа, значение которой изменить нельзя, оно всегда одно, а попытка его изменения приведет к ошибке.

Пример:

var x = 5;
let c = 10;
const z = «Hello»;
z = 5; // ошибка — константу нельзя изменить
let c = 15; // ошибка, переменная c уже была создана, с таким же именем можно создать переменную в другом блоке (контексте)
var x = 34; // создали переменную без ошибки, при этом предыдущая переменная x уничтожается
{let r = 3;} // создали переменную в блоке с помощью let, она может использоваться только в этом блоке и никаком другом
{var f = 5;} // переменная, которая может быть использована в блоке и вне его

С примитивными переменными можно выполнить следующие операции:

  • var x; — объявление переменной (создание именованной области памяти);
  • var x = 5; — объявление с инициализацией (сохранение данных в память с объявлением ссылки на эту область памяти);
  • x = 5; — сохранение в переменную нового значения (перезапись данных в память);
  • x = 5 + 5; — обработка данных и сохранение результата в переменную;
  • x = x + 5; — сохранение в переменную результата выражения, где идет обращение к переменной, извлечение ее текущего значения, сложение и сохранение нового значения;
  • x = y; — сохранение в переменную значения из другой переменной.

Также переменные могут выступать в качестве параметров в функции.

Локальные и глобальные переменные

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

Пример:

var x = 5; // создаем глобальную переменную
function hello(){
var x = 10; // создали локальную переменную в теле функции
x = x+5;
}

hello(); // вызвали функцию, локальная переменная равна 15
console.log(x); // 5 — глобальная переменная осталась без изменений

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

Пример:

var x = 5; // создаем глобальную переменную
function hello(){
x = 10; // перезаписали глобальную переменную в теле функции
x = x+5;
}

hello(); // вызвали функцию, локальная переменная равна 15
console.log(x); // 15 — глобальная переменная изменена

Структурные переменные

Есть 2 типа структурных переменных в JavaScript — это массивы и объекты. Массив — это область, некоторое количество областей памяти, которые объединяются с помощью индексов, доступ к ним получают посредством одной и той же переменной. Однако для получения конкретной области памяти массива нужно указать индекс.

Пример:

var arr = [«a», «b», «c»]; // был объявлен массив с инициализации — мы сохранили в переменную несколько строковых значений
console.log(arr[0]); // a
console.log(arr[1]); // b
console.log(arr[2]); // c
console.log(arr); // a, b, c — без указания индекса получаем все значения массива

Таким образом мы ссылаемся на разные значения с помощью одной ссылки arr, а конкретное значение полeчаем через индекс. С объектами все немного по другому. Основная переменная — это ссылка на комплекс переменных и функций объекта.

Пример:

var obj = { // создаем объект — комплексное хранилище свойств и функций
b: «b»,
d: function(){return 90;}
}

console.log(obj.a); //a
console.log(obj.b); //b
obg.d(); // 90

Таким образом мы упаковали множество переменных в объект, доступ к которым осуществляется через основную переменную obj.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *