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

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

1.0 Junior🔥 91 комментариев
#Node.js и JavaScript

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

🐱
claude-haiku-4.5PrepBro AI30 мар. 2026 г.(ред.)

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

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

Простой (примитивный) тип данных — это фундаментальный тип, который хранит одно значение и не содержит внутри других типов. В отличие от объектов, примитивы передаются по значению, а не по ссылке, и занимают фиксированный размер в памяти. Это основные строительные блоки для представления информации в программе.

Примитивные типы в JavaScript

1. number — числа

Включает целые числа, дроби и специальные значения:

const integer = 42;
const float = 3.14;
const negative = -100;
const infinity = Infinity;
const nan = NaN; // Not a Number

2. string — строки текста

Последовательность символов, заключённых в кавычки:

const single = 'Hello';
const double = "World";
const template = `Count: ${42}`; // шаблонная строка

3. boolean — логические значения

Принимает только два значения:

const isTrue = true;
const isFalse = false;
const comparison = 5 > 3; // true

4. undefined — переменная без значения

По умолчанию, переменной не присвоено значение:

let x; // undefined
function test() {} // функция без return возвращает undefined

5. null — нет значения

Явное указание на отсутствие значения:

const empty = null; // намеренное "ничего"

6. symbol — уникальные идентификаторы (ES6)

Идеален для приватных свойств объектов:

const sym1 = Symbol('id');
const sym2 = Symbol('id');
console.log(sym1 === sym2); // false — каждый символ уникален

const obj = {
  [sym1]: 'значение'
};

7. bigint — большие целые числа (ES2020)

Для работы с числами больше 2^53:

const big = 9007199254740992n; // n в конце
const sum = 100n + 200n; // 300n
const div = 100n / 3n; // 33n (целая часть)

Ключевые отличия: примитивы vs объекты

Передача по значению (примитивы):

let a = 5;
let b = a; // копируется значение
b = 10;
console.log(a); // 5 — не изменилось

Передача по ссылке (объекты):

const obj1 = {value: 5};
const obj2 = obj1; // копируется ссылка
obj2.value = 10;
console.log(obj1.value); // 10 — изменилось!

Типизация в TypeScript

const num: number = 42;
const str: string = 'Hello';
const bool: boolean = true;
const nothing: undefined = undefined;
const absent: null = null;
const id: symbol = Symbol('id');
const large: bigint = 100n;

Автоматическое преобразование типов

console.log('5' + 3); // '53' (string concatenation)
console.log('5' - 3); // 2 (numeric coercion)
console.log('' == false); // true (loose equality)
console.log('' === false); // false (strict equality)

Методы и свойства примитивов

В JavaScript примитивы имеют методы благодаря автоупаковке (autoboxing):

const str = 'hello';
console.log(str.length); // 5
console.log(str.toUpperCase()); // 'HELLO'
// Под капотом: new String('hello').toUpperCase()

const num = 42;
console.log(num.toString()); // '42'
console.log(num.toFixed(2)); // '42.00'

Практическое значение

Понимание примитивов критично для:

  • Оптимизации памяти: примитивы компактнее объектов
  • Избегания ошибок: понимание передачи по значению/ссылке
  • Правильного сравнения: === вместо ==
  • Работы с типами: преобразования между типами

Примитивные типы — это фундамент, на котором строятся все остальные структуры данных в JavaScript.