Преобразование типов
важность: 5
Какой результат будет у выражений ниже?
"" + 1 + 0
"" - 1 + 0
true + false
6 / "3"
"2" * "3"
4 + 5 + "px"
"$" + 4 + 5
"4" - 2
"4px" - 2
" -9 " + 5
" -9 " - 5
null + 1
undefined + 1
" \t \n" - 2
Подумайте как следует, запишите ответы и сверьтесь с решением.
"" + 1 + 0 = "10" // (1)
"" - 1 + 0 = -1 // (2)
true + false = 1
6 / "3" = 2
"2" * "3" = 6
4 + 5 + "px" = "9px"
"$" + 4 + 5 = "$45"
"4" - 2 = 2
"4px" - 2 = NaN
" -9 " + 5 = " -9 5" // (3)
" -9 " - 5 = -14 // (4)
null + 1 = 1 // (5)
undefined + 1 = NaN // (6)
" \t \n" - 2 = -2 // (7)
- Сложение со строкой
"" + 1
преобразует1
к строке:"" + 1 = "1"
, и в следующем случае"1" + 0
работает то же самое правило. - Вычитание
-
(как и большинство математических операторов) работает только с числами, пустая строка""
приводится к0
. - Сложение со строкой превращает число
5
в строку и добавляет к строке. - Вычитание всегда преобразует к числу, значит строка
" -9 "
становится числом-9
(пробелы по краям обрезаются). null
становится0
после численного преобразования.undefined
становитсяNaN
после численного преобразования.- Пробельные символы, такие как
\t
и\n
, по краям строки игнорируются при преобразовании в число, так что строка" \t \n"
, аналогично пустой строке, становится0
после численного преобразования.