В этой серии мы рассмотрим некоторые хитрые (забавные) концепции JavaScript.

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

Что является истинным и ложным?

Представьте, что произойдет, если JS встретит типичное выражение if, как показано ниже:

это довольно просто. В консоли будет напечатано сделать что-нибудь. Поскольку условие имеет логический тип, если оно равно true, выполняется if заявление. Если false,выполняется инструкция else.

Но что, если условие не является логическим значением? Такие, как ниже…

Выдаст ли это какую-либо ошибку? Нет, в этом случае JS выведет "сделать что-нибудь" в консоли. Но условие — это строка, а оператору if требуется логическое значение, чтобы проверить, должен ли он выполнять блок или нет. В такой ситуации такие языки, как Java, выдавали бы ошибку типа "ошибка: несовместимые типы: строка не может быть преобразована в логическое значение", а JavaScript нет.

Итак, что делает JavaScript по-другому?

Он использует приведение типов для приведения пустой строки к логическому типу. Именно это приведение типа возвращает «14», если вы попытаетесь выполнить «1» + 4. Оно преобразует 4 из числа в строку, добавляет две строки, чтобы вернуть новая строка. Помните, что это немного отличается от преобразования типов, о котором я напишу в следующей статье.

Короче говоря, пустая строка рассматривается как истинноезначение в условном выражении. Итак, что еще считается истинными… что все считается ложным?

Ну, вот список истинных значений…

  1. пустой массив: []
  2. пустой объект: {}
  3. любая непустая строка: «0»
  4. Объекты даты
  5. Бесконечность, -ve/+ve
  6. Любое число, кроме 0 (целые, десятичные, большие Int), -ve/+ve

А вот и ложные…

  1. Пустые строки: "", ``, ''
  2. 0, -0, 0n
  3. ноль, не определено, NaN

Большое спасибо за чтение!