Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Что такое простой тип данных?
Простой (примитивный) тип данных — это фундаментальный тип, который хранит одно значение и не содержит внутри других типов. В отличие от объектов, примитивы передаются по значению, а не по ссылке, и занимают фиксированный размер в памяти. Это основные строительные блоки для представления информации в программе.
Примитивные типы в 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.