回到课程

类型转换

重要程度: 5

下面这些表达式的结果是什么?

"" + 1 + 0
"" - 1 + 0
true + false
6 / "3"
"2" * "3"
4 + 5 + "px"
"$" + 4 + 5
"4" - 2
"4px" - 2
7 / 0
"  -9\n" + 5
"  -9\n" - 5
null + 1
undefined + 1

好好思考一下,把它们写下来然后和答案比较一下。

"" + 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
7 / 0 = Infinity
" -9\n" + 5 = " -9\n5"
" -9\n" - 5 = -14
null + 1 = 1 // (3)
undefined + 1 = NaN // (4)
  1. 字符串的加法 "" + 1 会将 1 转换为一个字符串:"" + 1 = "1",然后我们得到了 "1" + 0,再次应用同样的规则。
  2. 减法 - (就像大多数数学操作那样)只能用于数字,它会将空字符串 "" 转换为 0
  3. null 经过数字化转换之后会变为 0
  4. undefined 经过数字化转换之后会变为 NaN