关于“ | ”、“ & ”、“ || ”、“ && ”棍子肉丸

2017-10-14  本文已影响0人  Primers

这几个符号,是Js中的运算符号,插入到代码中,会进行相对的运算。

首先做一个区分,

“ | ”和“ || ”,在中文中可以理解成“或”,左边或右边成立,就成立。
“ & ”和“ && ”,在中文中可理解成“且”,左边且右边成立,才成立。

“ | ”和“ & ”进行的是位运算,是针对数值进行的,会把条件转化成数值来运算,返回的结果也是数值。即使运算的条件和结果是true或者false,结果也会对应的变成1或0。

“ || ”和“ && ” 进行的是逻辑运算,即对语句进行判断,其返回的结果是true或false。并且具有短路性质:只要一边成立(或不成立)的情况下,可直接忽略另一边,不再进行计算,而产生结果。

下面举个栗子。借用一下chelseayin的图片哈哈。

第三位 第二位 第一位
4转成二进制→ 1 0 0(false)
5转成二进制→ 1 0 1(true)
“ | ” 运算→或 1 0 1(true)
“ & ” 运算→且 1 0 0(false)

由上面可见“ | ”运算的结果为101,转换回十进制就是5,所以结果输出5。
而“ & ”的运算结果是100,转换回十进制的结果是4,所以输出结果是4。



Wait me Back

上一篇 下一篇

猜你喜欢

热点阅读