Переменная в JavaScript — это именованная область памяти, которая хранит данные (значения) и позволяет обращаться к ним по имени.
- Имя (идентификатор) — название переменной, по которому можно получить доступ к значению.
- Значение — данные, которые хранятся в переменной (число, строка, объект и т. д.).
- Тип данных — определяется автоматически на основе значения (динамическая типизация).
- Область видимости — часть кода, где переменная доступна.
Когда вы создаете новую переменную, ее необходимо объявить.
Для объявления переменных требуются специальные операторы:
let- локальная переменная, имеют блочную область видимости (то есть, они доступны только внутри блока, в котором объявлены).var- относится к глобальным переменным, имеют функциональную область видимости (то есть, они доступны внутри функции, в которой объявлены, даже если объявлены внутри блока)const- используется для переменных, которым присваивается значение только один раз.
Объявление переменной состоит из трех частей: определяющего слова (оператор let, var или const), названия (идентификатора) и значения.
<оператор: let|const|var> <идентификатор> [= <значение>]
Примеры:
let foo,
bar,
baz = 'baz';
let nr1 = 12;
var nr2 = 8;
const PI = 3.14159; // Константа
// Попытка изменить константу
// PI = 3.99999
// Ошибка: Uncaught TypeError: Assignment to constant variable.Как только переменная объявлена, ей можно присвоить значение. Для этого пишется имя переменной, затем следует знак равенства (=), а за ним значение, которое вы хотите присвоить.
Переменная, объявленная через var или let без присвоения начального значения, имеет значение undefined.
Нельзя изменить значение константы (объявленная через const) через присваивание или повторное объявление во время выполнения скрипта. Значение должно быть указано при инициализации.
Инициализация переменной в JavaScript - это процесс присвоения начального значения переменной при ее объявлении.
Примеры:
var yourAge = 25; // объявление и инициализация переменной yourAge с помощью var
let myAge = 35; // объявление и инициализация переменной myAge с помощью let
const MIN_AGE = 30; // объявление и инициализация константы MIN_AGE с помощью const
var yourName; // объявление переменной yourName с помощью var, значение по умолчанию - undefined
let myName; // объявление переменной myName с помощью let, значение по умолчанию - undefined
// const otherMan; // Ошибка: const переменная должна быть инициализирована при объявленииВажно:
При работе с объектами и массивами, const не предотвращает изменение их содержимого, а лишь запрещает переназначение самой переменной (например, нельзя присвоить другой объект или массив).
Правила присваивания имен переменных (идентификатор):
- Имя может содержать:
- Буквы (
A-Z,a-z) - Цифры (
0-9), но не в начале - Символы
$и_
- Буквы (
- Имя не может начинаться с цифры:
let 1user;→ ❌ Ошибкаlet user1;→ ✅
- Имя не может содержать спецсимволы (кроме
$и_):let user-name;→ ❌ Ошибкаlet userName;→ ✅
- Имя не может быть ключевым словом JS:
let let;→ ❌ Ошибкаlet myLet;→ ✅
- Регистр имеет значение:
let userиlet User— разные переменные.
- Для обычных переменных должна использоваться нотация camelCase.
- Для констант которые заменяют магические строки и числа должна использоваться нотация ALL_CAPS_WITH_UNDERSCORES (все заглавные буквы с подчеркиваниями).
- PascalCase для классов и функций конструкторов.
- Префиксы для булевых переменных (
is,has,can). - Избегайте однобуквенных имён (кроме счётчиков в циклах).
Примеры:
const isEnabled = true;
let userName = 'John';
let totalPrice = 100;
const MAX_WIDTH = 1200;
const SITE_URL = ' https://google.com';
const DEFAULT_TIMEOUT = 400;
// ❌ Плохо
let a = 10;
let d = new Date();
// ✅ Хорошо
let age = 10;
let currentDate = new Date();Область видимости (scope) в JavaScript определяет доступность переменных и функций в различных частях кода. Она определяет, где в программе переменные и функции могут быть использованы, и помогает избежать конфликтов имен, а также повышает читаемость и поддерживаемость кода.
Типы областей видимости:
-
Глобальная область видимости:
Переменные, объявленные вне функций, доступны из любой части кода.
-
Локальная (функциональная) область видимости:
Переменные, объявленные внутри функции, доступны только внутри этой функции и в ее вложенных функциях.
-
Блочная область видимости:
Переменные, объявленные внутри блока кода (например, в
if,forили блоке, заключенном в фигурные скобки{}), доступны только внутри этого блока.
Ключевые слова для объявления переменных и их влияние на область видимости:
var: Переменные, объявленные с помощью var, имеют функциональную область видимости (то есть, они доступны внутри функции, в которой объявлены, даже если объявлены внутри блока).
let и const: Переменные, объявленные с помощью let и const, имеют блочную область видимости (то есть, они доступны только внутри блока, в котором объявлены).
Примеры:
var globalVar = 'Я глобальная';
function myFunction() {
var localVar = 'Я локальная';
console.log(globalVar); // Доступно
console.log(localVar); // Доступно
if (true) {
let blockVar = 'Я в блоке';
console.log(localVar); // Доступно
console.log(blockVar); // Доступно
}
// console.log(blockVar); // Ошибка: blockVar не доступна за пределами блока
}
myFunction();
console.log(globalVar); // Доступно
// console.log(localVar); // Ошибка: localVar не доступна за пределами функции