二元逻辑运算符:underfined,null,false,-0,0,NaN,''解释为假,其他所有值(包括所有的对象,空对象也不例外Boolean({})为真,Boolean([])为真)都是真值.
var a = 2;
var b = 3;
var andflag = a && b ;
var orflag = a || b;
问andflag 和orflag 分别是什么?
起初我认为: andflag 和orflag 的值都为 true; 毕竟 && 和 || 都是求Boolean ,后来发现,我错了。
答案应该是 andflag = 3,orflag = 2;
原因是这样的:
与(&&)
如果第一个运算数是假值,返回它。否则,返回第二个运算数。
NaN&&123
-->>NaN
345&&0
-->>0
或(||)
如果第一个运算值是真值,就返回它,否则,返回第二个运算数。
123||“abc”
-->123
null||456
-->456
该逻辑运算符支持短路原则:&&返回第一个假值,||返回第一个真值
如
var b = 4 && 5 && null && 0 ——> var b = true && true && false && false 结果是false 则返回第一个false 即是null .
var a = “” || null || 3 || 4 —-> var a = fasel || false || true || true 结果为true 则返回第一个true,即是3