&按位与

2018-05-06  本文已影响0人  monvhh

作为一个前端转node开发的童鞋,每次碰到&这个操作符,都要纠结很久,这是什么意思?

先将两个数字转换成二进制,按位与,得出每位的值(1或0),将这个结果转换为十进制便是最后结果。

这篇文章主要是想说按位与的利与弊。(都是我推测的,毕竟都是前人写的代码)
以项目常用场景为对输入进行分类来说。分类是什么意思,作为判断条件

function func( variable ){
  if(variable & 4 = 4){
    ……
  }
……
}


1.速度
2.可扩展,比如variable是一个订单状态的话,某些状态属于某一种类型。后续订单状态增加,但还属于某种类型,就可以不用改代码了。
3.可交叉,分类可交叉。
variable & 4 = 4variable & 8 = 8variable & 16 = 16 …… 想同时满足多少个条件,这个variable都可以只是一个数字,而不是用逗号分隔的几个数字或字符串,或好几个标识符。


1.不直观,可读性非常差,无法追溯。
2.上面这个问题导致了,前人的代码这样写,后人都不敢改,因为反推variable的值是不可穷举的

总的来说来是利大于弊,在合适的场景下。

上一篇 下一篇

猜你喜欢

热点阅读