在其他的语言中 || 和 && 返回的是bool值,但在js中他们的返回值却是两个操作数中的其中一个
var a = 42;
var b = "abc";
var c = null;
a || b; //42
a && b; //"abc"
c || b; //"abc"
c && b; //null
对于 || 来说,如果条件判断结果为 true就返回第一个操作数,false的话就返回第二个操作数b的值。
对于 && 来说,如果条件判断结果为 true就返回第二个操作数,false的话就返回第一个操作数b的值。
常见的 || 用法 和 &&
|| 的用法
function foo(a,b) {
a = a || "hello";
b = b || "world";
console.log( a + " " + b );
}
foo(); //"Hello world"
foo( "yeah", "yeah!" ); //"yeah yeah"
&& 的用法
function foo() {
console.log( a );
}
var a = 42;
a && foo(); // 42
foo只有在条件判断a通过时才会被调用,如果条件判断未通过, a && foo()就会悄然终止,foo() 不会被调用