龙空技术网

「JavaScript」+new Array(017) 输出?

面试宝典 57

前言:

目前姐妹们对“js中输出”可能比较看重,大家都需要学习一些“js中输出”的相关知识。那么小编同时在网上搜集了一些关于“js中输出””的相关文章,希望看官们能喜欢,兄弟们一起来学习一下吧!

本题考查面试者的审题能力,首先+是一个运算符,017的0代表的是八进制

+ new Array(017) 等价于 + new Array(15) (15的八进制是17)

按照规则,数组对象应该采用Number,所以先执行valueOf,发现valueOf返回的是自己,所以继续执行toString,过程如下:

Number(new Array(15))

// new Array(15).valueOf()不是原始值,所以执行toString()

Number(new Array(15).toString())

Number(",,,,,,,,,,,,,,")

NaN

所以答案是NaN

标签: #js中输出