Типы данных: примитивы (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-джедай! 🌟

Скрыть рекламу навсегда

🎥 YouTube: программирование простым языком

Канал, где я спокойно и по шагам объясняю сложные темы — без заумных терминов и лишней теории.

Подходит, если раньше «не заходило», но хочется наконец понять.

▶️ Смотреть курсы на YouTube