Skip to main content

Переменные и типы данных

Что такое переменная

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

Что такое тип данных

Тип данных (Data type) - это характеристика данных, которая определяет, какие операции можно выполнять с данными. Тип данных определяет, какие значения могут храниться в переменной и какие операции можно выполнять с этими значениями.

Что такое примитивный тип данных

Примитивный тип данных (Primitive data type) - это тип данных, который представляет собой одно значение. Примитивные типы данных включают в себя числа, строки, булевы значения, null и undefined.

Что такое составной тип данных

Составной тип данных (Composite data type) - это тип данных, который представляет собой набор значений. Составные типы данных включают в себя массивы, объекты и функции.

Что такое абстрактный тип данных

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

Список примитивных типов данных

  • Number (Число)
  • String (Строка) *
  • Boolean (Булево значение)
  • Null (Пустое значение)
  • Undefined (Неопределенное значение)
  • Symbol (Символ) *

Примитивные типы данных являются значимыми типами данных, они хранятся в стеке.

*В JavaScript строка является одним из примитивных значений, а объект String - это оболочка вокруг примитивной строки.

Список составных типов данных

  • Object (Объект)
  • Array (Массив)
  • Function (Функция)

Составные типы данных - это объекты, массивы и функции, они являются ссылочными типами данных, они хранятся в куче.

Абстрактные типы данных - структуры данных (Abstract Data Types)

  • Stack (Стек)
  • Queue (Очередь)
  • Linked List (Связанный список)
  • Tree (Дерево)
  • Graph (Граф)
  • Hash Table (Хеш-таблица)

Разница между var, let и const (Difference between var, let and const)

let и var - это ключевые слова, которые используются для объявления переменных в JavaScript. let - это новое ключевое слово, которое было добавлено в ECMAScript 6, var - это старое ключевое слово, которое было добавлено в JavaScript в начале 2000-х годов.

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

Примеры использования var, let и const

var x = 10; // Объявление переменной x с помощью ключевого слова var
let y = 20; // Объявление переменной y с помощью ключевого слова let
const z = 30; // Объявление константы z с помощью ключевого слова const

x = 40; // Изменение значения переменной x
y = 50; // Изменение значения переменной y
z = 60; // Ошибка: нельзя изменить значение константы

Разница между var и let

var имеет функциональную область видимости (function scope), let имеет блочную область видимости (block scope)

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

{
var x = 10;
let y = 20;
}

console.log(x); // 10
console.log(y); // Ошибка: y is not defined
function test() {
var x = 10;
let y = 20;
}

console.log(x); // Ошибка: x is not defined
console.log(y); // Ошибка: y is not defined

var поднимается (hoisted) в начало функции, let не поднимается

var поднимается в начало функции, это означает что переменная var будет доступна во всей функции, даже если она объявлена позже в коде, переменная будет создана но не будет инициализирована, поэтому при обращении к переменной до ее инициализации будет возвращено undefined. let не поднимается в начало функции, поэтому переменная let будет доступна только после ее объявления.

console.log(x); // undefined
console.log(y); // Ошибка: y is not defined

var x = 10;
let y = 20;

var можно объявить несколько раз в одной функции, let нельзя объявить несколько раз в одной функции

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

var x = 10;
var x = 20;

console.log(x); // 20

let y = 30;
let y = 40; // Ошибка: Identifier 'y' has already been declared

Литералы

Литералы (Literal) используются для представления значений в JavaScript. Они являются фиксированными значениями, а не переменными.

  • Литерал целого числа
  • Литерал числа с плавающей точкой
  • Литерал строки
  • Логический литерал
  • Литерал массива
  • Литерал объекта
  • RegExp литерал
console.log(10); // Литерал целого числа
console.log(3.14); // Литерал числа с плавающей точкой
console.log("Hello, World!"); // Литерал строки
console.log(true); // Логический литерал
console.log([1, 2, 3]); // Литерал массива
console.log({name: "John", age: 30}); // Литерал объекта
console.log(/hello/); // RegExp литерал

Соглашения об именовании (Naming conventions)

  • Имя переменной должно начинаться с буквы или символа подчеркивания (_)
  • Имя переменной может содержать буквы, цифры и символ подчеркивания (_)
  • Имя переменной не может содержать пробелы
  • Имя переменной не может быть зарезервированным словом (например var, let, const, function, if, else и т.д.)
  • Имя переменной чувствительно к регистру (например x и X - это разные переменные)
  • Имя переменной должно быть осмысленным и описывать ее назначение
  • Имя переменной должно быть на английском языке