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

Какие знаешь основные типы данных в JavaScript?

1.0 Junior🔥 71 комментариев
#Другое#Фреймворки тестирования

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Основные типы данных в JavaScript

В JavaScript существует две основные категории типов данных: примитивные (primitive) типы и объекты (objects). Всего в языке 8 основных типов данных, из которых 7 являются примитивными, а 1 - ссылочным (объектным).

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

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

  1. string (строка) - последовательность символов, используемая для представления текста.
let name = "Алексей";
let greeting = 'Привет, мир!';
let template = `Привет, ${name}!`; // шаблонные строки
  1. number (число) - представляет как целые, так и числа с плавающей точкой. Включает специальные значения: Infinity, -Infinity, NaN.
let integer = 42;
let float = 3.14;
let infinity = Infinity;
let notANumber = NaN; // результат некорректных математических операций
  1. bigint (большие целые числа) - добавлен в ES2020 для работы с целыми числами произвольной длины.
let bigNumber = 9007199254740991n; // суффикс 'n'
let huge = BigInt("123456789012345678901234567890");
  1. boolean (логический тип) - принимает только два значения: true или false.
let isActive = true;
let isCompleted = false;
  1. undefined (не определено) - переменная объявлена, но не инициализирована.
let variable;
console.log(variable); // undefined
  1. null (ничто) - специальное значение, означающее "ничего", "пусто" или "значение неизвестно".
let emptyValue = null;
  1. symbol (символ) - добавлен в ES6, представляет уникальный идентификатор, используется для создания скрытых свойств объектов.
let id = Symbol("id");
let user = {
  [id]: 123,
  name: "Иван"
};

Объектные (ссылочные) типы

  1. object (объект) - коллекция пар ключ-значение. К объектам также относятся массивы, функции, даты, регулярные выражения и другие структурные типы.
// Простой объект
let person = {
  name: "Мария",
  age: 30,
  isEmployed: true
};

// Массив (частный случай объекта)
let numbers = [1, 2, 3, 4, 5];

// Функция (объект первого класса)
function greet(name) {
  return `Привет, ${name}!`;
}

// Дата
let today = new Date();

// Регулярное выражение
let pattern = /test/gi;

Особенности типов в JavaScript

Динамическая типизация - переменные в JavaScript не привязаны к конкретному типу данных, тип определяется значением, которое они содержат в данный момент:

let dynamic = "строка"; // тип string
dynamic = 42;           // теперь тип number
dynamic = true;         // теперь тип boolean

Оператор typeof - используется для определения типа данных:

console.log(typeof "текст");      // "string"
console.log(typeof 42);           // "number"
console.log(typeof 42n);          // "bigint"
console.log(typeof true);         // "boolean"
console.log(typeof undefined);    // "undefined"
console.log(typeof null);         // "object" (историческая особенность!)
console.log(typeof Symbol("id")); // "symbol"
console.log(typeof {});           // "object"
console.log(typeof []);           // "object"
console.log(typeof function(){}); // "function" (особый случай)

Особенности сравнения типов:

  • null и undefined равны друг другу при нестрогом сравнении (null == undefined вернет true)
  • NaN не равно ничему, включая самого себя
  • Разные примитивные типы могут преобразовываться при сравнении

Преобразование типов - JavaScript автоматически преобразует типы в различных контекстах:

let result = "5" + 2;     // "52" (конкатенация)
let sum = "5" - 2;        // 3 (преобразование в число)
let bool = Boolean("");   // false
let str = String(123);    // "123"
let num = Number("123");  // 123

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

Какие знаешь основные типы данных в JavaScript? | PrepBro