js逻辑运算符(&&、||)与位运算符(&、|)的区别:
-
&&:逻辑于,用于判断变量或者值之间的逻辑关系,&&两边的情况都为真时条件才为真;
-
||:逻辑或,||两边的逻辑判断有一边为真,则条件为真,两边都为假时,则条件为假;
-
&:按位与,将数值先转换为二进制,两个数值的个位分别相与,同时为1才得1,只要一个为0就为0;
-
|:按位或, 将数值先转换为二进制,两个位只要有一个为1,那么结果都为1。否则就为0; 着重需要说明的是,逻辑运算符存在”短路现象“,举例说明:
(1)false&&true:逻辑与运算符左边为假,则不会再去计算右边的结果,只有左边为真时才会计算右边的真假;
(2)false||true:同样存在短路现象,在左边已经可以判别为真的情况下,不会去计算右边;
(3)位运算是将数值转换为二进制后才按照相应规则得到一个新的数;
存在疑问的地方:位运算符是否可以用于逻辑判断(搜索了一些文章说是可以,但并没有可以证明的例子说明,个人觉得是不可以的,位运算符是对数值进行二进制运算后得到一个数,虽说布尔运算中0等同于false,不等于0的等同true;但位运算符结果的数并不能用于判断结果真假)