javascript 与和非

|| :  在javascript中,返回第一个真值,除非都是假值返回最后一个值(也是假值)。

1 || 0;  // 1
0 || 1;  // 1
0 || 0;  // 0
0 || undefined; // undefined
undefined || 0; // 0

&& :  在javascript中,返回第一个假值,除非都是真值返回最后一个真值(也是真值)。

0 && 1;  // 0
1 && 0;  // 0
1 && 1;  // 1
1 && 2;  // 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();
}
原文地址:https://www.cnblogs.com/voctrals/p/4180109.html