是否有充分的理由不使用位运算符而不是parseInt?

时间:2011-11-09 06:18:25

标签: javascript bit

我最近开始使用位运算符而不是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的简短表示法。

1 个答案:

答案 0 :(得分:0)

为了简单地将字符串转换为数字,可以使用一元“+”。如果可维护性很重要,Number(x)会更清楚。

对于带有字母后缀的数字,parseInt非常方便,但如果省略基数并且读起来很笨,则会出现问题。

在需要简单截断且速度很重要的情况下,按位运算符很棒,但它有些模糊,Math.floor().round().ceil()更清晰但可能更慢。

他们都有自己的怪癖,所以只需使用最适合每种情况的东西。