← Назад ко всем вопросам

Какие типы данных есть в JavaScript? Чем отличаются primitive и reference types?

1️⃣ Как кратко ответить

В JavaScript есть семь примитивных типов данных: undefined, null, boolean, number, string, bigint, symbol. Примитивные типы хранятся непосредственно в переменной. Ссылочные типы (объекты) включают объекты, массивы и функции. Они хранятся в памяти по ссылке, а переменная содержит указатель на их местоположение.

2️⃣ Подробное объяснение темы

JavaScript — это язык программирования, который поддерживает несколько типов данных. Эти типы данных делятся на две основные категории: примитивные (primitive types) и ссылочные (reference types).

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

Примитивные типы данных — это базовые типы, которые хранятся непосредственно в переменной. Они неизменяемы, то есть их значение не может быть изменено после создания. В JavaScript существует семь примитивных типов данных:

  1. undefined: Тип данных, который имеет одно значение undefined. Переменная, объявленная, но не инициализированная, имеет значение undefined.

  2. null: Специальное значение, представляющее "отсутствие объекта". Это значение используется для обозначения намеренного отсутствия какого-либо объектного значения.

  3. boolean: Логический тип данных, который может принимать одно из двух значений: true или false.

  4. number: Числовой тип данных, который может представлять как целые числа, так и числа с плавающей запятой.

  5. string: Последовательность символов, используемая для представления текстовых данных.

  6. bigint: Тип данных для представления целых чисел произвольной длины. Используется, когда необходимо работать с числами, превышающими пределы number.

  7. symbol: Уникальный и неизменяемый тип данных, часто используемый для создания уникальных идентификаторов для свойств объектов.

Ссылочные типы данных

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

Примеры ссылочных типов:

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

  • Массивы: Специальный тип объектов, предназначенный для хранения упорядоченных коллекций данных.

  • Функции: Объекты, которые можно вызывать. Они могут быть присвоены переменным, переданы в качестве аргументов другим функциям и возвращены из функций.

Пример кода

// Примитивные типы
let a = 10; // number
let b = 'Hello'; // string
let c = true; // boolean
let d; // undefined
let e = null; // null
let f = Symbol('id'); // symbol
let g = 1234567890123456789012345678901234567890n; // bigint
​
// Ссылочные типы
let obj = { name: 'Alice', age: 25 }; // объект
let arr = [1, 2, 3, 4, 5]; // массив
let func = function() { return 'Hello, World!'; }; // функция
​
// Пример различия в поведении
let x = a; // копируется значение 10
x = 20; // изменение x не влияет на a
​
let objCopy = obj; // копируется ссылка на объект
objCopy.name = 'Bob'; // изменение objCopy влияет на obj
  • Примитивные типы: Переменная x получает копию значения a, поэтому изменение x не влияет на a.
  • Ссылочные типы: Переменная objCopy получает ссылку на obj, поэтому изменение objCopy также изменяет obj.

Тема: JavaScript
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки