关闭

js中 [] ? true : false 的返回值为什么是true?

47人阅读 评论(0) 收藏 举报
分类:

对象到数字的转换过程如下:

如果对象具有valueof()方法,后者返回一个原始值,则JavaScript将这个原始值转换为数字并返回;否则,如果对象具有toString()方法,后者返回一个原始值,JavaScript将这个字符串转换为数字并返回;否则,报错。数组继承了默认的valueOf()方法,但是数组、函数和正则表达式调用此方法后,只返回对象本身,因此转换为数字,还会继续调用toString()方法,空数组调用toString()返回空字符串,转换为数字为0,new Array(1)同样因为虽然长度为1,但值为undefined,转换为数字仍未0.所以,才会出现博主提出的疑问。

参考:https://segmentfault.com/q/1010000011457390

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:65588次
    • 积分:2564
    • 等级:
    • 排名:第15001名
    • 原创:174篇
    • 转载:167篇
    • 译文:0篇
    • 评论:9条
    最新评论