发现一个例外:Number([1]) 的结果是 1
来源:3-8 类型转换(升级)

浅芷初夏
2020-06-15
Number([1]) 输出 1;
Number([1, 2]) 输出 NaN;
[1].valueOf 输出 [1];
[1, 2].valueOf 输出 [1, 2];
好像违背了课程中 Number() 执行的原理,很神奇!
写回答
1回答
-
chanchan666
2020-06-17
没有违背呀~
Number([1]) :先执行[1].valueOf(),结果为[1],是复合类型,然后再执行[1].toString(),结果是"1",最后再调用Number("1"),结果是1
Number([1,2]) :先执行[1,2].valueOf(),结果为[1,2],是复合类型,然后再执行[1,2].toString(),结果是"1,2",最后再调用Number("1,2"),结果是NaN
00
相似问题