|| 和 && 首先会对第一个操作数执行条件判断,如果其不是布尔值就先强制转换为布尔类型,然后再执行条件判断。
||
对于 || 来说,如果条件判断结果为 true 就返回第一个操作数的值,如果为 false 就返回第二个操作数的值。
例如
console.log(1 || null);//1 console.log(null || undefined);//undefined
&&
&& 则相反,如果条件判断结果为 true 就返回第二个操作数的值,如果为 false 就返回第一个操作数的值。
例如
console.log(1 && null);//null console.log(null && undefined);//null
总结
|| 和 && 返回它们其中一个操作数的值,而非条件判断的结果