js && ||

默认 "" NaN undefined 0 false null 为false

&& 表达式 :

若第一个表达式为真 则结果为第二个表达式的值  若第一个表达式为false 则结果为第一个表达式的值  (条件判断全真才为真 最终结果转换为boolean )

var a=2 && 3 a结果:3   if(a) (条件判断全真才为真 a最终结果转换为boolean true)

var a="" && 4 a结果:""

var b=5 && "" a结果:"" if(b) (条件判断全真才为真 b最终结果转换为boolean false)

|| 作为表达式:

若第一个表达式为真结果为第一个表达的值  若第一个表达式为假则结果为第二个表达的值

2>1 && console.log(333) 若第一个表达式为真才会执行后面的语句 若第一个表达式为false 则后面语句不执行

var a=2 || 3 a结果:2     if(a) (有一个真就为真 a最终结果转换为boolean false)

var a=0 || 3 a结果:3

var eve=event || window.event 若第一个表达式为真结果为第一个表达的值  若第一个表达式为假则结果为第二个表达的值

原文地址:https://www.cnblogs.com/howhy/p/15766800.html