js 中的 & 和 && 和其他语言短接不一样,js & 是位运算符号, && 逻辑运算~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 &除了可以进行"逻辑运算"外,还可以进行逐位运算,而&&只能进行逻辑运算。如果&&的第一个运算数是false,就不再考虑第二个运算数,直接返回false。而&运算符却不是这样的,它们总是要比较两个运算数才得出结果。 1.性能上的比较如果&&的第一个运算数是false,就不再考虑第二个运算数,直接返回false;如果||的第一个运算数是true,也不再考虑第二个运算数,直接返回true。&和|运算符却不是这样的,它们总是要比较两个运算数才得出结果,因而性能上&&和||会比&和|好。由于&&和||可能不考虑第二个运算数,所以我们应尽量避免在它们右边使用具有副作用(赋值、递增、递减和函数调用)的表达式,除非非常清楚自己再做什么。if((a == null) && (b++ >10)) stop(); //b++递增运算可能不被执行if((b++ >10) && (a == null)) stop(); //保证b++递增运算都被执行2.逐位运算&和|除了可以进行"逻辑运算"[1]外,还可以进行逐位运算,而&&和||只能进行逻辑运算。3.JS的&和|与C#的&和|在JS中,&和|只是逐位运算符,而在C#中,&和|既是逻辑运算符,又是位运算,通过以下代码可以看出。document.write(true & false); //JS,结果为0document.write(1 & 0); //JS,结果为0bool a = true & false; //C#,结果为falseint b = 1 & 0; //结果为0注[1]:&和|本是逐位运算符,之所以可以进行"逻辑运算",是由于JS是无类型的语言、各数据类型可以自由转换这一特性决定的,当用&和|进行"逻辑运算"时,实际上true被转换成1,false被转换成0,再进行逐位运算。也正是由于&和|是逐位运算符,才出现了第一点中所说的,它们总是要比较两个运算数才得出结果,才导致性能会比&&和||低一些。 var aaa = aaa || {} 是什么意思? jsp 打印去掉页眉页脚 如何把一个iframe中的页面显示在另外一个iframe中? 笨笨JS问题。怎么通过JS来更换一个项的样式.怎么换? 请问如何实现IP地址框 jquery datagrid combobox联动问题 javascript 的文件包含问题 请问为什么innertext取出来的数据显示的是NaN啊,100分相送!!!!!!!! 急!!!!各位老大帮忙 如何将字符串中的'\'替换上'/'?(我只能给61分) js怎么判断一个对象是文本框(text)还是下拉框(select) innerHTML与form表单
if((a == null) && (b++ >10)) stop(); //b++递增运算可能不被执行
if((b++ >10) && (a == null)) stop(); //保证b++递增运算都被执行2.逐位运算&和|除了可以进行"逻辑运算"[1]外,还可以进行逐位运算,而&&和||只能进行逻辑运算。3.JS的&和|与C#的&和|在JS中,&和|只是逐位运算符,而在C#中,&和|既是逻辑运算符,又是位运算,通过以下代码可以看出。
document.write(true & false); //JS,结果为0document.write(1 & 0); //JS,结果为0
bool a = true & false; //C#,结果为false
int b = 1 & 0; //结果为0
注[1]:&和|本是逐位运算符,之所以可以进行"逻辑运算",是由于JS是无类型的语言、各数据类型可以自由转换这一特性决定的,当用&和|进行"逻辑运算"时,实际上true被转换成1,false被转换成0,再进行逐位运算。也正是由于&和|是逐位运算符,才出现了第一点中所说的,它们总是要比较两个运算数才得出结果,才导致性能会比&&和||低一些。