快捷搜索: 王者荣耀 脱发

逻辑与(&&),逻辑或(||),and(&),or(|)

逻辑与和逻辑或都是逻辑运算符,而and和or是位运算符。 逻辑运算符对前后两个值是否为真值进行判断,位运算符则是将前后两个值先转化为二进制再对两个值的对应位的数字进行逻辑运算。 有点不理解?那请看详细解析:

逻辑与(&&):两个数中有一个为假,则判断为假。

对于逻辑与,它的判断方法是这样的:如果要进行逻辑与运算,比如说:value1&&value2,其运算结果根据value1 的值进行判断:

    如果value1的值为真,则返回value2; 如果value1的值为假,则直接返回value1。

简单来说如果第一个数是真值,就返回第二个数,即判断第二个数是真是假, 如果第一个数是假值,那没得说就是兄弟你了(第一个数:假),后面的就不用看了。

逻辑或(||):两个数中有一个为真,则判断为真。

对于逻辑或,它的判断方法和逻辑与类似:如果要进行逻辑或运算,比如说:value1||value2,其运算结果也是根据value1的值进行判断:

    如果value1的值为真,则直接返回value2; 如果value1的值为假,则返回value2。

总之如果第一个数是真值,就不用判断第二个数了,直接返回第一个数;如果第一个数为假,那就得看看第二个数是真是假了,即返回第二个数。

位运算符:“位”即按位运算,判断每个位数的数字并进行运算(不是判断),那到底怎么按“位”运算呢?

我们所用的数字有十进制,二进制,四进制,八进制甚至十六进制等多种进制表示。而位运算符正是按照二进制的每个位上是0还是1进行运算: "&":用语言不好表达,直接上干货 例求(56&9)=8,它的运算方法是这样的:

  1. 先将56和9转化为二进制数字:56=111000,9=1001;
  2. 在将这两个数字从右向左对齐排列(像列竖式),位数不足则用0补齐:
56: 1 1 1 0 0 0 9: 0 0 1 0 0 1 – – – – – – – 值:8 0 0 1 0 0 0 所 以 (56 & 9) = 8

"|":(56|9)=57

56: 1 1 1 0 0 0 9: 0 0 1 0 0 1 – – – – – – – 值:57 1 1 1 0 0 1 所 以 (56 | 9) = 57

综上,位运算符的运算逻辑和逻辑运算符一致,只是位运算符是对二进制的对应位上的值进行逻辑运算,简单来说就是先将数转化为二进制,在进行竖式的逻辑运算。

另:在JavaScript中,false,null,0,"",undefined 和 NaN被定义为假值。

个人总结,欢迎讨论。

经验分享 程序员 微信小程序 职场和发展