我最近开始使用位运算符而不是parseInt。
> 70.5|0
70
> "70.5"|0
70
> 0xFF|0
255
> "0xFF"|0
255
它将所有内容都转换为整数。这有时会产生副作用。
> 1+undefined|0
1
> 1+parseInt(undefined)
NaN
它不能做的就是这个。
> "16px"|0
0
> parseInt("16px",10)
16
具有相同效果的其他运营商。
> 70.5^0
70
> ~~70.5
70
> 70.5<<0
70
这是parseInt IMO的简短表示法。
答案 0 :(得分:0)
为了简单地将字符串转换为数字,可以使用一元“+”。如果可维护性很重要,Number(x)
会更清楚。
对于带有字母后缀的数字,parseInt
非常方便,但如果省略基数并且读起来很笨,则会出现问题。
在需要简单截断且速度很重要的情况下,按位运算符很棒,但它有些模糊,Math.floor()
,.round()
或.ceil()
更清晰但可能更慢。
他们都有自己的怪癖,所以只需使用最适合每种情况的东西。