几乎在所有语言中 , || 和 && 都遵循“短路”原理,a && b 和 a || b : 将a, b转换为Boolean类型, 再执行逻辑与或逻辑否
在 js中 0 , null , undefined ,空字符串 都是false ,其他的值为true
* js也遵循上述原则。
* 当 || 时,找到为true的分项就停止处理,并返回该分项的值,否则执行完,并返回最后分项的值。若 || 前后的两个值都是false , 则返回后面的值
var temp = null || "2" ;// null 为false , "2" 为true , 所以temp的值应该是2
alert(temp);
输出结果:2
var temp = "1" || "2" ;// 1为true , "2" 为true , 所以temp的值应该是1
alert(temp);
输出结果:1
var temp = null || undefined ;//null 和 undefined 都为false , 则返回undefined
alert(temp);
* 当 && 时,找到为false的分项就停止处理,并返回该分项的值。如果都为true , 则返回最后为true的值
var temp = 1 && 2 ;// 1 和 2 都为true , 所以应该是返回 2
alert(temp);
输出结果:2
var temp = null && 2 ;// null 是false ,就不会执行后面了, 所以就停止处理返回null 了
alert(temp);
输出结果:null