我一直在做 JavaScript 很长一段时间,但只是注意到一些我以前从未见过的东西。考虑:
> +[1.5]
1.5
为什么会这样?这是将数组解释为数字的特殊规则还是规范炼金术的意外?
另请注意:
> +[1,0]
NaN
当然,这对我来说是有道理的,但我原以为这+[1]
也是 NaN,因为它不是一个数字。还是以某种方式归类为数字?
然后是这些情况,这让我相信我们正在穿越一个类型强制虫洞(数组 ==> 字符串,字符串 ==> 数字):
> [2] + [4]
"24"
> + [2] + [4]
"24"
> (+[2]) + (+[4])
6
> +[2] + [4,5]
"24,5"
> // which, incidentally, looks like a european-formatted number, but I see
> // that that's just an accident (still another possibility for confusion)
这是故意的吗?