首页 新闻 会员 周边

关于JavaScript的一个小小疑惑

0
悬赏园豆:5 [已解决问题] 解决于 2019-02-23 10:02

为何一个数字型的字符串,前面用个加号,或者*1,就变成了number呢,代码如下:

var str='123';

console.log(typeof +str);//number
console.log(typeof (str*1));//number

console.log(+str === 123);//true
刘下来的主页 刘下来 | 小虾三级 | 园豆:919
提问于:2019-02-23 09:25
< >
分享
最佳答案
0

JS會做隱式轉換喔

收获园豆:5
RosonJ | 老鸟四级 |园豆:4910 | 2019-02-23 09:29

能说说具体原理吗,或者如何理解这些隐式转换呢

刘下来 | 园豆:919 (小虾三级) | 2019-02-23 09:42

@iiiiiim:

var foo = '123';
var bar = 123;
console.log(foo + bar);

上面這段對不同型別相加的代碼,在JS是沒有問題的
因為JS引擎會做轉換,將兩個變量轉換成可以相加的型別
實際的轉換規則我沒有詳記,得上網查查

RosonJ | 园豆:4910 (老鸟四级) | 2019-02-23 09:46

@RosonJ: 好的,非常感谢!

刘下来 | 园豆:919 (小虾三级) | 2019-02-23 10:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册