返回课程

类型转换

重要性: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",然后我们有 "1" + 0,应用相同的规则。
  2. 减法 -(与大多数数学运算一样)仅适用于数字,它将空字符串 "" 转换为 0
  3. 字符串加法会将数字5追加到字符串末尾。
  4. 减法运算始终会将操作数转换为数字,因此" -9 " 会被转换为数字-9(忽略周围的空格)。
  5. null 在数字转换后会变成0
  6. undefined 在数字转换后会变成NaN
  7. 当字符串转换为数字时,字符串开头和结尾的空格会被去除。这里整个字符串由空格字符组成,例如\t\n 以及它们之间的“普通”空格。因此,与空字符串类似,它会变成0