&&短路运算
==如果第一个条件就为false 第二个条件不执行 执行到哪就把哪的值给左侧==
==如果第一个条件就为true 再去执行第二个条件 执行到哪就把哪的值给左
// 如果第一个条件就为false 第二个条件不执行 执行到哪就把哪的值给左侧
var a1 = 1;
var b1 = 1;
var c1 = --a1 && --b1;//var c1= 0 a1=0 b1 = 1
console.log(a1,b1,c1);// 0 1 0
// 如果第一个条件为true 再去执行第二个条件 执行到哪就把哪的值给左侧
var x = 10;
var y = true && x--; // y=10 x=9
console.log(x,y);// 9 10
var a2 = 10;
var b2 = 2;
var c2 = --a2 && --b2;//var c2 = 9 && 1 a2=9 b2=1
console.log(a2,b2,c2);//9 1 1
|| 短路运算
==如果第一个条件为true 第二个条件不执行 执行到哪就把哪的值给左侧==
==如果第一个条件为false
// 如果第一个条件为true 第二个条件不执行 执行到哪就把哪的值给左侧
var x = 10;
var z = true || x--;// z=true
console.log(x,z);//10 true
// 如果第一个条件为false 再执行第二个条件 执行到哪就把哪的值给左侧
var x = 10;
var z = false || --x; // var z = 9 x=9
console.log(x,z);// 9 9
var x1 = 1;
var y1 = 10;
var z1 = --x1 || --y1;//var z1 = 0 || 9 z1 = 9 x1=0 y1=9
console.log(x1,y1,z1);//0 9 9
var x2 = 10;
var y2 = 10;
var z2 = --x2 || --y2;//var z2 = 9 x2 = 9 y2 = 10
console.log(x2,y2,z2);// 9 10 9
再执行第二个条件 执行到哪就把哪的值给左侧==