我看到了一些像这样的变量:
var comparison = <condition> || /* It could be "&&" too */ <condition>;
我不知道它是什么,它能做什么? 非常感谢你!
答案 0 :(得分:3)
它主要用于将函数参数初始化为某个默认值。
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';
}
答案 1 :(得分:2)
他们被称为logical operators(MDN):
expr1 && expr2
:如果可以转换为false,则返回expr1;否则,返回expr2。因此,当与布尔值一起使用时,&amp;&amp;如果两个操作数都为真,则返回true;否则,返回false。
expr1 || expr2
:如果可以转换为true,则返回expr1;否则,返回expr2。因此,当与布尔值一起使用时,||如果任一操作数为true,则返回true;如果两者都为假,则返回false。
答案 2 :(得分:1)
代码将评估这两个条件并返回一个布尔值。
var comparison = 2 > 1 && 3 < 1;
在这种情况下,comparison
将设置为false
。
&&
才会返回true
,而如果至少有一个条件为||
,true
将返回true
。