JAVAScript中的“||”与“|”,“&”与“&&”的区别

来源:互联网 发布:教育统计系统导出数据 编辑:程序博客网 时间:2024/06/05 21:57

js中的“&&”“||”“!”相当于JAVA中的“&& (短路与)”“|| (短路或)”“!”

注意:
返回结果与java(要求两边是逻辑值)有不同。
&& : 当左边真,返回右侧表达式的值。
当左边假,返回左侧表达式的值,右侧不执行

<script type="text/javascript">    var b=0;    var a=(1-1==1)&&(++b==1);    alert(a);//false</script>

&:在js里,一个&表示运算符按位与,就是把两个二进制数按每一位比较,两个都为1则为1,否则为0(也类似与且,都真才为真),TRUE的话就是1,FALSE的话就是0

<script type="text/javascript">    var b=0;    var a=(1-1==0)&(++b==1);    alert(a);//1    alert(b);//1</script>
<script type="text/javascript">    var b=0;    var a=(1-1==1)&(++b==1);    alert(a);//0    alert(b);//1</script>

|| :当左边是真的时候,返回表达式左边的值,右侧不执行
当左边表达式是假的时候,返回表达式右侧的值,

|:在js中“|”表示按位或,返回的是一个数值,当两边都为假时返回值为0,当一边为真时返回值为1
//两边都为false

<script type="text/javascript">    var b=0;    var a=(1-1==1)|(++b==0);    alert(a);//0    </script>

//有一边为false

<script type="text/javascript">    var b=0;    var a=(1-1==1)|(++b==1);    alert(a);//1</script>

如果&&和||两边都是数字
0或者null或者undefined则为false
非0或者非空或者非undefined则为true
并且最终的返回值为数字,具体的返回左边右边要看那边可以决定最后的结果