在js里,一个&表示运算符按位与,就是把两个二进制数按每一位比较,两个都为1则为1,否则为0(也类似与且,都真才为真)
比如 1111&0110 = 0110。
如果不是二进制数比较,需要先把这两个数转换为二进制,比如
15&6 = 1111&0110 = 0110 = 6;
扩展资料:
按位与运算符“&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位都为1时,结果位才为1。参与运算的两个数均以补码出现。
整数在计算机中用二进制的位来表示,一些运算符可以直接操作整数中的位,称为位运算,这些运算符的操作数都必须是整型的。
按位与运算通常用来对某些位清0或保留某些位,例如把a 的高八位清 0 , 保留低八位, 可作 a&255 运算 ( 255 的二进制数为11111111)。
参考资料来源:百度百科-按位与
在JS“&&”和“||”是逻辑运算符;“&”和“|”是位运算符。
1、运算表达的不同
只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。
JavaScript中的位运算符:“|”运算方法:两个位只要有一个为1,那么结果都为1。否则就为0
2、使用方式的不同
只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值
3、运算逻辑的不同
按位与:a&b是把a和b都转换成二进制数然后再进行与的运算;逻辑与:a&&b就是当且仅当两个操作数均为true时,其结果才为true;只要有一个为零,a&&b就为零。
扩展资料
js中的||的使用:
只有前后都是false的时候才返回false,否则返回true;
alert(2||1)//2
前面2是true,后面1也是true,结果是2;
alert('a'||1)//'a'
前面'a'是true,后面1也是true测试结果是'a';
alert(''||1)//1
前面”是false,后面1是true,而返回结果是1;
alert('a'||0)//'a'
前面'a'是true,而后面0是false,返回结果是'a';
alert(''||0)//0
前面”是false,后面0同样是false,返回结果是0;
alert(0||'')//''
前面0是false,后面”是false,返回结果是”。
js中按位与运算符(&)1.该运算符对它的运算数逐位执行布尔AND操作,只有两个运算数中相应的位都为1时,结果中的这一位才为1,它要求其运算数为整型,如果运算数不是整型,则会尝试将其转换为32位整型,如果无法转换,就返回NaN。
// 运算数均为整型
alert(9 &9)// 9
alert(9 &10)// 8
alert(1 &3)// 1
// 运算数可以被转换为整型
alert([9] &'9')// 9
alert([9] &['10'])// 8
alert(1.25 &3.25)// 1
// 一个或两个运算数均无法被转换整型
alert(1 &['a'])// 0
alert({} &/\d/)// 0
alert(NaN &NaN)// 0
alert(Infinity &Infinity)// 0
alert(NaN &Infinity)// 0
alert(null &null)// 0
alert(undefined &undefined)// 0
alert(null &undefined)// 0
//----------------------------
2.JS中逻辑&&
例1:
以下是引用片段:
<Script>
var t = true
var f = false
with(document) {
write("<OL><LI>true &&true 的结果是 ", t &&t)
write("<LI>true &&false 的结果是 ", t &&f)
write("<LI>false &&true 的结果是 ", f &&t)
write("<LI>false &&false 的结果是 ", f &&f)
write("<LI>true &&(1==1) 的结果是 ", t &&(1==1))
write("<LI>false &&'A' 的结果是 ", f &&'A')
write("<LI>'A' &&false 的结果是 ", 'A' &&f)
write("<LI>true &&'A' 的结果是 ", t &&'A')
write("<LI>'A' &&true 的结果是 ", 'A' &&t)
write("<LI>'A' &&'B' 的结果是 ", 'A' &&'B')
//&&:有一个不是逻辑值,只要第一个操作数的值为flase,则返回第一个操作数的值flase,否则,返回第二个操作数的值
}
</Script>