比较变量

时间:2012-09-30 15:51:48

标签: javascript variables

我看到了一些像这样的变量:

var comparison = <condition> || /* It could be "&&" too */ <condition>;

我不知道它是什么,它能做什么? 非常感谢你!

3 个答案:

答案 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