Javascript和Java中逻辑单与&、双与&&的区别

1.相同之处:在Java和javascript中运算结果一致
但&&具有短路效果。当左边是flase时,右边不再执行。
(同理双或||。左边是true时,右边不执行。)

  • 逻辑与:&—— 有false则false
    逻辑或:| —— 有true则true
class Test{
    public static void main(String[] args){
        int x=7, y=8;
        //boolean b=((x++ == 7) & (y++ == 8));       //8 9 true
        //boolean b=((x++ == 7) && (y++ == 8));      //8 9 true
        //boolean b=((++x == 7) & (y++ == 8));           //8 9 flase
        boolean b=((++x == 7) && (y++ == 8));            //8 8 flase  
        //注意的是:后面的y为8! &&前执行完为flase,之后直接就不执行了,得出flase

        System.out.println("x:"+x+" y:"+y+"  "+b);

    }

摘自:https://blog.csdn.net/u013317445/article/details/81531560

2.不同之处:

  • 在javascript中true&true的结果是1,false&true的结果是0
    在java中true&true的结果是true,false&true的结果是false
    但是不影响在if语句中的使用。
<script type="text/javascript">
			/*声明变量:算术运算*/
				/*var a="123a";
				var b=2;
				alert(a+b);
				var c=true
				var d="1"
				alert(c+d);
				alert(a-d);*/
			/*声明变量:逻辑运算*/
				var a=true;
				var b=true;
				alert(a&b);//输出1
				if(a&b){
					alert("成功输出");
				}
				var a=true;
				var b=false;
				alert(a&b);//输出0
				if(a&b){
					alert("成功输出");
				}//该语句不执行
		</script>

你可能感兴趣的:(Javascript和Java中逻辑单与&、双与&&的区别)