var a = parseInt([0,0,1,0,0].join('')+1) a的值为

var a = parseInt([0,0,1,0,0].join('')+1) a的值为

A
2

B
101

C
1001

D
NaN

正确答案:C

官方解析:"00100"+1 = "001001" 再转换为整数为1001

var a = parseInt([0,0,1,0,0].join('')+1)
//join()方法将数组转为字符串,并用指定的分隔符进行分割

[0,0,1,0,0].join("") 后变成字符串'00100'
字符串'00100'+1 ,1是number,会将1转变为字符串后拼接
就变为 001001 parseInt后 变成 1001

JS的类型转换规则相当繁杂,主要是变化太多了。

在 JS 中类型转换只有三种情况,分别是:
转换为布尔值
转换为数字
转换为字符串

四则运算和==、条件运算都会隐式类型转换。

运算

但记住常见的就差不多了
加法运算 字符串 + 数字 将数字转为字符串 如111+'222'="111222"
非加法运算 字符串- x / 数字 将字符串转为数字 如'111'-11=100

==

首先会判断两者类型是否相同。相同的话就是比值大小了
类型不相同的话,那么就会进行类型转换
会先判断是否在对比 null 和 undefined,是的话就会返回 true
判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number
判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断
判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断

var a=parseInt([0,0,1,0,0].join("")+1);
① ([0,0,1,0,0].join("") 结果为 "00100"

②"00100"+1 结果为 "001001"【因为字符串加数字结果就是字符串拼接的结果】

③parseInt("001001") 结果为 1001 【在ECMAScript3中,会将0开头的解析为8进制。在ECMAScript5中,不允许以0开头的八进制,所以后面都会将0舍弃】


__EOF__

本文作者龙陌
本文链接https://www.cnblogs.com/longmo666/p/17833566.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   龙陌  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示