发现一个例外: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


0
0

前端跳槽面试必备技巧 面试官全流程指导

一门让你能成功获取前端 Offer 的课程, 不只是技术,面试“技巧”也至关重要

4836 学习 · 830 问题

查看课程