Вы находитесь на странице: 1из 9

Переменные и константы JavaScript

Переменная - это именованная ссылка на область памяти, которая используется для хранения,
чтения или записи (изменения) информации.

Константа – это именованная ссылка на область памяти, доступная только для хранения и
чтения. Это означает:
1. идентификатор (именование ссылки) не может быть переназначен;
2. в некоторых случаях указываемое значение может быть изменено (например, если
константа указывает на объект, то свойства объекта могут быть изменены).

Объявление (declared) переменной означает её поименование без присвоения начального


значения (полностью к работе она ещё не готова, хранит значение undefined).
Инициализация (initialization) переменной означает, что:
1. переменная объявлена и
2. ей присвоено начальное значение.
(учтите, что тип в JavaScript определяется динамически)

Особенности использования констант:


1. Константа должна быть сразу инициализирована (а не только объявлена).
2. Константа не может быть переопределена.

СКАЧАНО С WWW.MEGASLIV.BIZ - ПРИСОЕДИНЯЙСЯ!


Переменные и константы JavaScript

Синтаксис объявления переменных


Ключевые слова (директивы) для объявления переменных: var и let

var name; // объявление переменной

var name = "Alex"; // инициализация переменной

name = "Olga"; // переопределение переменной

let age; // объявление переменной


console.log(age); // undefined (не инициализирована, но ошибки не будет)

age = 45; // переопределение переменной


console.log(age); // 45

var a = 0, b = 0; // объявление и инициализация двух переменных


var a = "A"; // присвоение двум переменным одного строкового значения
var b = a;
// равнозначно:
var a, b = a = "A";
Переменные и константы JavaScript

Особенности использования var и let :

var let

Не препятствует объявлению переменных Препятствует объявлению переменных


(и/или функций) с одинаковым именем. (и/или функций) с одинаковым именем.

Область видимости переменных Переменная является:


ограничивается: • блочной (видна только внутри блока {…} с
• функцией, либо областью видимости, ограниченной
• скриптом (если переменная глобальная). текущим блоком кода) или
Переменные доступны за пределами блока • локальной.
{…}. Однако, если блок кода находится внутри
функции, то var становится локальной
переменной в этой функции.

Позволяет обратиться к переменной до её Не позволяет обратиться к переменной до её


инициализации. инициализации.
Переменные и константы JavaScript

Синтаксис объявления констант


const userNameOne;
// ошибка "Missing initializer in const declaration", т.к. константа объявлена, но ей не присвоено
значение (а она должна быть инициализирована)

const userNameOne = "Hima";

const userNameOne = 'One';


// ошибка "Unexpected identifier" (т.к. константа уже определена, переопределяться не
может)

/* Если константой определяется объект, то содержимое объекта может изменяться


(переопределяться) программно */
const user = {
name: "Alex",
age: 45
};
console.log(user); // {name: "Alex", age: 45}
user.name = "Olga";
console.log(user); // {name: "Olga", age: 45}
Переменные и константы JavaScript

Ограничения, касающиеся имён переменных JavaScript:


1. Имя переменной должно содержать только буквы, цифры или символы $ и _.
2. Первый символ не должен быть цифрой.
3. Регистр букв имеет значение ( apple и Apple – это две разные переменные).
4. Разрешен любой язык, включая кириллицу или даже иероглифы (но не рекомендуется).
5. Существует список зарезервированных слов, которые нельзя использовать в качестве
имён переменных, т.к. они используются самим языком (например: let, class, return,
function).

Если имя содержит несколько слов, следующих друг за другом, то могут использоваться:
• CamelCase (ВерблюжийРегистр) - каждое следующее слово начинается с заглавной буквы
(var userName = 35;)
• Under_score – слова в именовании переменной разделяются нижним подчеркиванием
(var user_Name = 35;)

ВАЖНО!
Стиль именования переменных в проекте должен быть единым (так принято).
Переменные и константы JavaScript

Общепринятые правила именования переменных:


1. Используйте легко читаемые имена, такие как userName или firstName.
2. Избегайте использования аббревиатур или коротких имён, таких как x, y, z, за исключением
тех случаев, когда вы точно знаете, что так нужно.
3. Делайте имена максимально описательными и лаконичными. Примеры плохих имён: data
и value (не информативны). Их можно использовать только в том случае, если из контекста
кода очевидно какие данные хранит переменная.
4. Используемые имена констант и переменных должны быть логически связаны: если
посетитель сайта называется user, тогда связанные с ним переменные должны называться
currentUser или newUser, а не currentMan или newMan.

var $name = "Alex"; // знак $ используется в JQuery и некоторых фреймворках


(использовать нецелесообразно)

let _name = "Olga"; // знак _ используется в особых случаях


(использовать нецелесообразно, подробнее здесь);
переменная (свойство) или метод являются недоступными из-за пределов класса

var 1name; // недопустимо

var UserName; // допустимо, но не принято, т.к. с Прописных букв называют классы

let user_name;
var username = 40; // допустимо, но нечитабельно
Переменные и константы JavaScript

ПОДНЯТИЕ (ВСПЛЫТИЕ) ПЕРЕМЕННЫХ (HOISTING)


a = 2;
var a;
console.log(a); // 2

Но если мы немного изменим код, то получим иной результат:


console.log(a); // undefined
var a = 2;

Приведенная выше запись при работе движка аналогична коду:


var a;
console.log(a); // undefined (переменная а не определена)
a = 2;

Выражение var a = 2; JavaScript обрабатывает как два оператора:


1. var a; - обрабатывается первый оператор (объявление поднимается в начало кода);
2. a = 2; - второй оператор (присваивание) остается на своем месте в коде.
Объявления переменной или функции "переезжают" с того места, где они появились в коде, в
начало кода. Это явление имеет название "поднятие ( hoisting )".

ВАЖНО!
1. Каждое поднятие соотносится с областью видимости объявленной переменной или
функции.
2. Поднимаются только сами объявления (сначала - функции, затем - переменные), тогда
как любые присваивания или другая логика выполнения остается на месте.
Переменные и константы JavaScript

ПРИМЕРЫ НА ПОДНЯТИЕ (ВСПЛЫТИЕ) ПЕРЕМЕННЫХ (HOISTING)


Пример №1 Последовательность работы движка с учетом поднятия
объявления переменных и функций:

foo(); // 1 (вызов функции) function foo()


var foo; var foo;
foo(); // (вызов функции)
function foo() { function foo() {
console.log(1); console.log(1); // 1}
}
foo = function() {
foo = function() { console.log(2);
console.log(2); };
};

Пример №2
/* функция может быть вызвана, т.к. её
объявление поднято (hoisting) */
foo(); function foo()
foo();
function foo() { function foo() {
console.log(a); // undefined var a;
/* (т.к. а = 2 присвоено ниже; var a console.log(a); // undefined
поднимается наверх foo(…), а не наверх
всей программы) */
var a = 2;
a = 2;
}
}
Переменные и константы JavaScript

ВАЖНО!
1. Присвоение значения необъявленной переменной подразумевает, что она будет
создана как глобальная переменная (переменная становится свойством
глобального объекта) после выполнения присваивания значения.
2. Различия между объявленной и необъявленной переменными следующие:
• объявленные переменные ограничены контекстом выполнения, в котором
они были объявлены;
• необъявленные переменные всегда глобальны.

Примеры:

smallMouse; // не допускается, выдаст ошибку


smallMouse = 6; // допускается, создана как глобальная переменная
(переменная становится свойством глобального объекта)

ДОПОЛНИТЕЛЬНЫЕ РЕСУРСЫ

1. Переменные и константы в JavaScript


2. Директива var
3. Директива let
4. Директива const
5. Тонкости ECMA-262-3. Часть 2. Объект переменных. (углубленно)
https://flagman.top/