js中应该使用位运算吗?

之前写js时有使用过位运算,就是为了偷个懒;
最近看mdn 中的 Ployfill 中 也出现了很多位运算,自己就查了下,跟着用了。总之有时候用起来很方便。
比如:

   ~str.indexOf('')   //判断是否存在
    ~~number           //取整
    ...
 其他的位运算觉得可能会影响阅读就几乎没用;
 
 但是,最近了解到有人吐槽 ,说js的位运算  
    1.速度比内置的原生方法慢
    2.影响阅读,显摆自己,
    3.动态语言里不要一知半解的用静态语言里面的东西
    4.这哪是技巧,这是毒瘤
    
 所以js中应不应该使用位运算?请大家说一下看法
阅读 3.4k
5 个回答

可读性确实差,因为人对二进制运算本来就不容易直观理解(也许有天才他们思维跟咱不一样)。

除非你的项目就是自己写着玩的,否则可读性、可维护性永远是第一要务。

所以最好包装成方法,比如你说的 ~~number,包成一个函数 toInt() 就直观许多了。

但你要说 速度比内置的原生方法慢,这我就不能理解了,请举具体例子。

速度比内置的原生方法慢 ?

我觉得可读性比较重要,不过,这个应该可以通过 ESLint 来解决,你写位运算,然后让 ESLint 来转成通俗易懂的写法,一举两得;

只在需要的时候用。
比如很多用户有很多标记,是否xxx,是否xxx,这个时候可以用位运算。

另外,位运算的速度不要质疑,除非用在了多余的地方,那再快也是增加负担。

比如~indexOf这种操作,基本是没必要的。

新手上路,请多包涵

正常开发中感觉必要性没有那么大

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题