[转] JS运算符 &&和|| 及其优先级

Posted 学知无涯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[转] JS运算符 &&和|| 及其优先级相关的知识,希望对你有一定的参考价值。

第一、&& (逻辑与)运算,看一个简单的例子:

var a = 1 && 2 && 3;
var b = 0 && 1 && 2;
var c = 1 && 0 && 2;
console.log(a);//值为3
console.log(b);//值为0
console.log(c);//值为0

运行的结果是 :3,0,0。

解析:

“&&” 运算遇到false就返回;

变量a的计算:因为1 && 2,1为真,返回2;2&&3, 2为真,返回3 。

变量b的计算:因为0 && 1,0为假,返回0,不再往下计算。

第二、|| (逻辑或)运算,看一个简单的例子:

var d = 0 || 1 || 2;
var e = 1 || 0 || 2;
var f = 1 || 2 || 0;

console.log(d);//值为1
console.log(e);//值为1
console.log(f);//值为1

 解析:

“||”运算遇到true就返回;

变量d的计算:因为0 || 1,0为假,返回1;1 || 2, 1为真,返回1 。

变量e的计算:因为1 || 0,1为真,返回1,不再往下计算。

三、&& (逻辑与) 和||(逻辑或)混合使用:

var g =  1 && 2 || 3;

var h = 1 || 2 && 3;

var i = 0 || 2 && 3;

console.log(g);//值为2
console.log(h);//值为1 

console.log(h);//值为3

 解析:

&& (逻辑与) 优先级高于||(逻辑或);

变量g的计算:因为1 && 2,1为真,返回2;2 || 3, 2为真,返回2 。

变量e的计算:等式看成 1 || (一个值),1为真,最终直接返回1,不需要计算后边的等式的值。

变量i的计算:因为2 && 3,2为真,返回3;0 || 3,0为假,返回3。

 











以上是关于[转] JS运算符 &&和|| 及其优先级的主要内容,如果未能解决你的问题,请参考以下文章

JS 中的布尔运算符 && 和 ||

JS的位运算符“与”(&)及应用

js--运算符与或非 及 if判断条件隐式转换 介绍

js逻辑运算符

运算符优先级记忆口诀及列表(转)

JS中短路运算符&&和||