逻辑与,逻辑或。
如果有空的或者否定的为假,其余为真。
0 "" null undefined NaN 都为false,但不会返回false而是返回它们自己
null&&true //null
null || true //true
逻辑与优先级大于逻辑或:&&>||
逻辑与:
符号:&&
用法:全true才true,有false就false:
true&&true =>true
true&&false=>false
false&&false=>flase
逻辑或:
符号:||
用法:有true就true,无true便false
true||true =>true
true||false=>true
false||false=>flase
短路问题:
逻辑与:如果表达式1为真,则返回表达式2;若表达式1为假,则返回表达式1.如果表达式1为假,则直接返回表达式1,后边的不再执行。例如
123&&456 // 456
0&&456 // 0
"" && 1 + 2 && 456 *123 // ""
逻辑或:如果表达式1为真,则返回表达式1;若表达式1为假,则返回会表达式2. 如果表达式1为真,则返回表达式1,后边的将不再执行
123||456 // 123
0||456 // 456
123||456||789||3256*10 //123
逻辑中断例子:
var num = 0;
console.log(123 || num ++); //123为真则直接返回123,逻辑中断,后边代码不执行
console.log(num) // 0