Небольшая заметка о преобразовании типов в JavaScript к примитивным значениям: когда происходит преобразование и каков его результат.
К числу
- Унарный плюс преобразует строку в число, если это возможно. Если строка не является числом, будет
NaN. - Арифметические операторы (кроме бинарного плюса) приводят аргументы к числу, если возможно.
- Операторы сравнения преобразуют значения к числам (кроме
===, !==). parseInt(),parseFloat()— преобразуют строку в число, пока это возможно.NaNбудет только если первый символ — не цифра.- Явно —
Number(val).
При преобразовании к числу:
undefined | NaN |
null | 0 при этом null>=0 возвращает true, но null>0 и null==0 — false |
true | 1 |
false | 0 |
| строка, начинающаяся с цифры (предшествующие пробелы не учитываются) | преобразуется в число, если возможно, при ошибке — NaN |
| строка, начинающаяся не с цифры (предшествующие пробелы не учитываются) | NaN |
| пустая строка | 0 |
| массив | сначала преобразуется в строку, затем эта строка преобразуется в число по правилам |

К строке
- Бинарный плюс — при сложении двух аргументов, если хотя бы один из них является строкой, второй также будет преобразован к строке — конкатенация строк.
- Функция
alertпреобразует свои аргументы к строкам. - Явно —
String(val).
К булеву значению
- В логическом контексте — условный оператор
if. - Двойное отрицание
!!val. - Явно —
Boolean(value).
| 0, пустая строка, null, undefined, NaN | false |
| все числа, кроме 0 все строки, кроме пустой строки, в т.ч. «0» и « » (строка из пробелов) объекты | true |
0 комментариев