首页新闻找找看学习计划

关于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
学会乐观的主页 学会乐观 | 小虾三级 | 园豆:702
提问于:2019-02-23 09:25
< >
分享
最佳答案
0

JS會做隱式轉換喔

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

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

学会乐观 | 园豆:702 (小虾三级) | 2019-02-23 09:42

@iiiiiim:

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

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

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

@RosonJ: 好的,非常感谢!

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