JavaScript — один из самых популярных языков программирования, но у него есть свои уникальные особенности, которые могут удивить даже опытных разработчиков. Эти необычные поведения не являются багами, а скорее специфическими чертами языка, которые делают его изучение еще более увлекательным. Давайте рассмотрим пять таких примеров.
В JavaScript логические значения преобразуются в числа:
true становится 1.
false становится 0.
Это возможно благодаря тому, что JavaScript автоматически приводит логические значения к числовым с помощью конструктора Number() или оператора +.
+true; // 1
+false; // 0
Таким образом, складывая true и false, вы фактически работаете с числами.
3. Почему NaN — это число?
В JavaScript есть специальное значение NaN, которое означает «не число». Но что происходит, если вы проверите его тип?
typeof NaN; // 'number'
Как это работает?
действительно является числомNaNХотя это может показаться странным, NaN— это особый тип числа, который указывает на невалидный результат.
4. Доступ к свойствам объекта через массив
В JavaScript можно получить доступ к значению свойства объекта через массив:
let data = { number: 1 },
array = ["number"];
console.log(data[array]); // -> 1
Как это работает?
Оператор [] в JavaScript автоматически преобразует аргумент в строку с помощью метода toString(). Когда массив содержит только один элемент, toString() возвращает этот элемент в виде строки. Таким образом, data[array] эквивалентно data["number"].
console.log(["test"].toString()); // 'test'
5. Почему сортировка чисел в JavaScript работает странно?
Попробуйте отсортировать массив чисел с помощью метода sort():
[1, 5, 2, 10, 30].sort();
Результат может вас удивить:
[1, 10, 2, 30, 5]
Как это работает?
Метод sort() по умолчанию преобразует элементы массива в строки и сортирует их на основе значений в формате UTF-16. Поэтому числа срав
Чтобы отсортировать массив чисел правильно, нужно передать функцию сравнения:
console.log([1, 5, 2, 10, 30].sort((a, b) => a - b));
// [1, 2, 5, 10, 30]
Заключение
JavaScript полон интересных и необычных особенностей, которые делают его таким уникальным. Эти примеры показывают, что язык всегда может преподнести неожиданные сюрпризы, даже когда кажется, что вы знаете его досконально. Продолжайте изучать JavaScript, и вы обязательно найдете еще много интересного!