美文网首页
&按位与

&按位与

作者: monvhh | 来源:发表于2018-05-06 22:38 被阅读0次

    作为一个前端转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的值是不可穷举的

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

    相关文章

      网友评论

          本文标题:&按位与

          本文链接:https://www.haomeiwen.com/subject/vujprftx.html