或:||
console.log( true || false ); //t
console.log( false || true ); //t
console.log( true || 0 ); //t
console.log( 0 || true ); //t
console.log( 0 || 1 ); //1
console.log( 1 || 0 ); //1
console.log(false || 0); //0
console.log(0 || false); //f
console.log(true || 1); //t
console.log(1 || true); //1
console.log(10 || 20); //10
console.log(20 || 10); //20
console.log( 0 || 10 ); //10
console.log( 10 || 0 ); //10
var a = 10 || 20;
var b = undefined || false;
var c = NaN || null;
console.log(a) //10
console.log(b) //false
console.log(c) //null
总结:
或 左边出现true即为左边 true的值,若无则继续向右判断,出现true则为true的值,false则为false的值
且 &&
console.log( true && false ); //f
console.log( false && true ); //f
console.log( true && 0 ); //0
console.log( 0 && true ); //0
console.log( 0 && 1 ); //0
console.log( 1 && 0 ); //0
console.log(false && 0); //f
console.log(0 && false); //0
console.log(true && 1); //1
console.log(1 && true); //t
console.log(10 && 20); //20
console.log(20 && 10); //10
console.log( 0 && 10 ); //0
console.log( 10 && 0 ); //0
var a = 10 && 20;
var b = undefined && false;
var c = NaN && null;
console.log(a) //20
console.log(b) //undefind
console.log(c) //NaN
总结:
或 左边出现false即为左边 false的值,若无则继续向右判断,出现true则为true的值,false则为false的值