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