Type conversions
importance: 5
What are results of these expressions?
"" + 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
Think well, write down and then compare with the answer.
"" + 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)
- The addition with a string
"" + 1
converts1
to a string:"" + 1 = "1"
, and then we have"1" + 0
, the same rule is applied. - The subtraction
-
(like most math operations) only works with numbers, it converts an empty string""
to0
. - The addition with a string appends the number
5
to the string. - The subtraction always converts to numbers, so it makes
" -9 "
a number-9
(ignoring spaces around it). null
becomes0
after the numeric conversion.undefined
becomesNaN
after the numeric conversion.- Space characters are trimmed off string start and end when a string is converted to a number. Here the whole string consists of space characters, such as
\t
,\n
and a “regular” space between them. So, similarly to an empty string, it becomes0
.