Небольшая заметка о преобразовании типов в JavaScript к примитивным значениям: когда происходит преобразование и каков его результат.

К числу

  1. Унарный плюс преобразует строку в число, если это возможно. Если строка не является числом, будет NaN.
  2. Арифметические операторы (кроме бинарного плюса) приводят аргументы к числу, если возможно.
  3. Операторы сравнения преобразуют значения к числам (кроме ===, !==).
  4. parseInt(), parseFloat() — преобразуют строку в число, пока это возможно. NaN будет только если первый символ — не цифра.
  5. Явно — Number(val).

При преобразовании к числу:

undefinedNaN
null0 при этом null>=0 возвращает true, но null>0 и null==0false
true1
false0
строка, начинающаяся с цифры (предшествующие пробелы не учитываются)преобразуется в число, если возможно, при ошибке — NaN
строка, начинающаяся не с цифры (предшествующие пробелы не учитываются)NaN
пустая строка0
массивсначала преобразуется в строку, затем эта строка преобразуется в число по правилам

К строке

  1. Бинарный плюс — при сложении двух аргументов, если хотя бы один из них является строкой, второй также будет преобразован к строке — конкатенация строк.
  2. Функция alert преобразует свои аргументы к строкам.
  3. Явно — String(val).

К булеву значению

  1. В логическом контексте — условный оператор if.
  2. Двойное отрицание !!val.
  3. Явно — Boolean(value).
0, пустая строка, null, undefined, NaNfalse
все числа, кроме 0
все строки, кроме пустой строки, в т.ч. «0» и « » (строка из пробелов)
объекты
true

0 комментариев

Оставить комментарий

*Доступные HTML-теги: a, abbr, blockquote, code, pre, del, i, em, strong, b, strike
*Не будет опубликован