震惊!“震惊!JS中的&&和||竟然...”竟然不给发。
一起来做输出题叭!
console.log(1 && "2");
console.log("1" && "2");
console.log(1 && null);
console.log(1 && 0);
console.log(false && 0);
console.log(0 && false);
console.log(null || "1");
console.log(null || 0);
console.log(0 || null);
console.log(0 || false);
console.log(1 || 0);
console.log(2 || "1");
console.log("1" || "2");
答案
console.log(1 && "2"); //输出:2
console.log("1" && "2"); //输出:2
console.log(1 && null); //输出:null
console.log(1 && 0); //输出:0
console.log(false && 0); //输出:false
console.log(0 && false); //输出:0
console.log(null || "1"); //输出:1
console.log(null || 0); //输出:0
console.log(0 || null); //输出:null
console.log(0 || false); //输出:false
console.log(1 || 0); //输出:1
console.log(2 || "1"); //输出:2
console.log("1" || "2"); //输出:1
总结
JS中的&&和||和C中的不一样...
&&,从左往右,都为真,输出最后一个值;不全真输出第一个假(null/0/false)。
||,从左往右,有真输出第一个真,没真输出最后一个(null/0/false)。