|| : 在javascript中,返回第一个真值,除非都是假值返回最后一个值(也是假值)。
1 || 0; //
0 || 1; //
0 || 0; //
0 || undefined; // undefined
undefined || 0; //
&& : 在javascript中,返回第一个假值,除非都是真值返回最后一个真值(也是真值)。
0 && 1; //
1 && 0; //
1 && 1; //
1 && 2; //
undefined && 2; // undefined
2 && undefined; // undefined
javascript也存在短路现象
// 当foo为真时,对它做些什么; 而如果foo为假时,就不再执行doSomething了
foo && doSomething(foo); // 相当于
if (foo) {
doSomething(foo);
}
// 当baz为真时,赋值,不然就创造一个bar
var bar = baz || createBar(); // 相当于
if (baz){
bar = baz;
} else {
createBar();
}