JavaScript, известный своим быстрорастущим сообществом и экосистемой, получил это преимущество благодаря своей простоте, гибкости и динамике. Разработчики используют JavaScript для самых разных областей, помимо Интернета. По этим же причинам возникает проблема.

JavaScript был создан Бренданом Эйхом. Он был написан, чтобы сделать сайты более динамичными. Оно было написано всего за 7 дней. Многие разработчики считают этот факт причиной невозможности исправления JavaScript.

JavaScript был одним из самых ненавистных языков разработчиков. Его критиковали из-за первоначальной спешки в разработке и постоянных усилий по исправлению языка. Несмотря на улучшение, проблемы по-прежнему сохраняются и привели к появлению альтернативных транспиляторов (v8) и языков (TypeScript). Ниже приведены 5 необычных вещей о JavaScript.

1. Добавление числа в строку

JavaScript может обрабатывать добавление числа в строку, но результат может быть не таким, как вы ожидаете. Когда вы добавляете число и строку, JavaScript преобразует число в строку и объединяет их вместо математического сложения. Например, 1 + "2" приводит к строке "12", а не к числу 3.

Также вычитание числа из строки. когда вы запускаете "2" - 1, он использует математический подход вместо использования предыдущего поведения. Он преобразует строку «2» в число и выполняет вычитание, в результате чего получается 1.

На других языках, таких как Python и Java. запуск такого кода автоматически приведет к ошибке. error: you can't concatenate a string to a number.

2. Использование ключевого слова typof в массиве

Если вы используете ключевое слово typeof для массива в JavaScript, оно вернет "object", а не "array". Это может быть удивительно, поскольку вы могли бы ожидать более конкретного идентификатора типа. Чтобы проверить, является ли переменная массивом, вы можете использовать дополнительные методы, например Array.isArray().

Также для проверки typeof из «не числа (Nan)» возвращается число. с ключевым словом javascript typeof определенно что-то сбивает с толку.

3. Создание объектной переменной с ключевым словом const

Как вы, возможно, уже знаете, создание переменной с ключевым словом const означает, что переменную нельзя изменить. Но при создании переменной Object с ключевым словом const вы все равно можете изменить ее свойство.🙄

const car = {
    brand: "Toyota",
    color: "red"
}

//property can still be changed, even with the const keyword
car.color = "red";

Хотя вы можете создать объект с помощью ключевого слова const в JavaScript, это не делает сам объект неизменяемым или неизменяемым. Ключевое слово const означает только то, что ссылку на объект нельзя изменить, но вы все равно можете изменить свойства объекта.

4. 0.1 + 0.2 != 0.3

проверка, возвращает ли 0.1 + 0.2 === 0.3 False. Судя по всему, 0.1 + 0.2 в JavaScript — это не 0.3, а 0.30000000000000004.😴

Это классическая проблема точности с плавающей запятой. Из-за способа представления чисел с плавающей запятой в JavaScript результат 0.1 + 0.2 не совсем равен 0.3. Это немного не так из-за внутреннего представления этих чисел, что приводит к неожиданным результатам, когда точность имеет решающее значение. Проще говоря, мы не умеем заниматься математикой 🧮.

5. Сравнение пустых массивов

Вот странная причуда - сравнение двух пустых arrays return false

[] === []; // -> False

Такое странное поведение может сбивать с толку и кажется совершенно нелогичным. Это один из тех необычных аспектов JavaScript, который может заставить разработчиков ломать голову.

Заключение

Несмотря на свои уникальные характеристики и критику, JavaScript остается универсальным и эффективным языком. Он адаптируется путем добавления новых функций и инструментов, а также благодаря совместным усилиям сообщества программистов, и все это направлено на устранение его ограничений с течением времени.