Типы данных: примитивы (number, string, boolean, null, undefined, symbol, bigint)
🧱 Основы: что такое примитивы?
В JavaScript примитивы — это «кирпичики», из которых строится любая программа. Они представляют простейшие, неделимые значения. Важно запомнить: примитивы всегда неизменяемы (immutable).
let message = "Привет";
message.toUpperCase(); // "ПРИВЕТ", но исходная строка не изменилась!
console.log(message); // "Привет"
🔢 Number: числа без сюрпризов
Тип number хранит целые и дробные числа, включая специальные значения:
Infinity,-Infinity— бесконечности.NaN(Not a Number) — результат ошибки вычислений (например,0 / 0).
let integer = 42;
let float = 3.14;
let result = 10 / 'apple'; // NaN (но тип — number!)
🔥 Совет: Используйте
Number.isNaN(value)вместоisNaN(value), чтобы избежать неявных преобразований.
📜 String: текст в любом оформлении
Строки (string) — это текст в одинарных, двойных или обратных кавычках (последние позволяют вставлять выражения через ${}):
let name = 'Данила';
let greeting = `Привет, ${name}!`; // "Привет, Данила!"
Методы строк (примеры):
'hello'.slice(1, 3); // "el" (подстрока)
'JAVASCRIPT'.toLowerCase(); // "javascript"
✔️ Boolean: истина или ложь
Всего два значения: true и false. Используются в условиях и сравнениях.
Ложные значения (преобразуются в false):
false,0,"",null,undefined,NaN.
let isReady = true;
if (isReady) {
console.log('Вперёд!'); // Сработает
}
❓ Null и Undefined: пустота по-разному
undefined— значение по умолчанию для неинициализированных переменных.null— явное указание на отсутствие значения.
let empty;
console.log(empty); // undefined (автоматически)
let user = null; // Мы явно указали, что здесь ничего нет
🤔 Фишка:
typeof nullвернёт"object"— это исторический баг JavaScript.
✨ Symbol: уникальные идентификаторы
Тип symbol создаёт уникальные значения, полезные для:
- Скрытых свойств объектов.
- Избегания конфликтов имён.
let id1 = Symbol('id');
let id2 = Symbol('id');
console.log(id1 === id2); // false (уникальны!)
const user = {
[id1]: 'секретный ключ'
};
🏋️ BigInt: числа без ограничений
Тип bigint работает с очень большими целыми числами (больше 2^53 - 1). Добавляется суффикс n:
const bigNumber = 1234567890123456789012345678901234567890n;
console.log(bigNumber + 1n); // Корректное вычисление
🧪 Практика: проверка типов
Используйте typeof, но помните про нюансы:
typeof 42; // "number"
typeof 'text'; // "string"
typeof true; // "boolean"
typeof undefined; // "undefined"
typeof Symbol(); // "symbol"
typeof 10n; // "bigint"
typeof null; // "object" (осторожно!)
🎯 Итоги
- 7 примитивов:
number,string,boolean,null,undefined,symbol,bigint. - Неизменяемы: Любая операция создаёт новое значение.
- Проверка:
typeof(кромеnull).
💡 Для углубления: Разбираетесь с
NaN? Гляньте разбор Данилы Бежина на YouTube — там есть классные примеры!
Теперь вы готовы оперировать базовыми типами, как настоящий JS-джедай! 🌟