Типы данных в JavaScript. Проверка типов (typeof), преобразование типов. Интерполяция строк.
Язык JavaScript - Типы данных
Вы когда-нибудь замечали странность? javascript const str = "hello";
console.log(str.toUpperCase()); // "HELLO"
const num = 42;
console.log(num.toString()); // "42"
const bool = true;
console.log(bool.toString()); // "true" Вроде бы ничего удивительного. Но подождите. "hello" - это же примитив, строка. У примитивов не может быть методов! Или может? Добро пожаловать в одну из самых элегантных иллюзий JavaScript - механизм, который заставляет примитивы вести себя как объекты. Это не магия, это тщательно продуманная система объектов-обёрток...
Язык JavaScript - Типы данных 2
Вы всё ещё используете обычные объекты для хранения пар "ключ-значение"? И массивы для проверки уникальности? Я вас понимаю. Это работает. Но работает плохо. Объекты путают строковые ключи, наследуют свойства от прототипа и не помнят порядок. А поиск в массиве - это всегда O(n), что медленно. Встречайте Map и Set - две структуры данных, которые были созданы, чтобы решить проблемы старых добрых объектов и массивов. Map - это коллекция ключ-значение, где ключом может быть что угодно: число, объект, функция, даже NaN...