我看到了一些这样的变量:
var comparison = <condition> || /* It could be "&&" too */ <condition>;
我不知道它是什么,它可以做什么?太感谢你了!
我看到了一些这样的变量:
var comparison = <condition> || /* It could be "&&" too */ <condition>;
我不知道它是什么,它可以做什么?太感谢你了!
它主要用于将函数参数初始化为某个默认值。
function foo(arg1,arg2)
{
arg1 = arg1 || 'Default for arg1';
arg2 = arg2 || 'Default for arg2';
}
这段代码的作用,实际上和下面的一样:
if (!(arg1))
{//if arg1 is falsy
arg1 = 'Default for arg1';//assign
}
就目前&&
而言,这几乎是相同的故事:
function foo(arg1,arg2)
{
var areBothArgsTrue = arg1 && arg2;//sets true is both args were truthy, else assigns false
arg1 = arg1 || 'Default for arg1';
arg2 = arg2 || 'Default for arg2';
}
它们被称为逻辑运算符(MDN):
expr1 && expr2
: 如果可以转换为 false,则返回 expr1;否则,返回 expr2。因此,当与布尔值一起使用时,如果两个操作数都为真,则 && 返回真;否则,返回 false。
expr1 || expr2
:如果可以转换为true则返回expr1;否则,返回 expr2。因此,当与布尔值一起使用时,|| 如果任一操作数为真,则返回真;如果两者都为假,则返回假。
代码将评估这两个条件并返回一个布尔值。
var comparison = 2 > 1 && 3 < 1;
在这种情况下,comparison
将设置为false
。
&&
true
仅当两个条件都为真时||
才会返回,而true
如果至少有一个条件为真则返回true
。