解释下为什么会得到880
a = "01010", b = "10101"
按位与运算符会把左右两侧操作符转成有符号32位整数
即把a/b默认转为两个32位十进制整数1010和10101, 而他们的与结果是880
以下是字符串形式的二进制与方法
result = (parseInt(a,2)&parseInt(b,2))在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,返回结果是”。