0

私はこのようないくつかの変数を見ました:

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

それが何で、何ができるのかわかりません。どうもありがとう!

4

3 に答える 3

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';
}
于 2012-09-30T15:55:59.137 に答える
2

それらは論理演算子(MDN)と呼ばれます。

expr1 && expr2:falseに変換できる場合はexpr1を返します。それ以外の場合は、expr2を返します。したがって、ブール値とともに使用すると、&&は両方のオペランドがtrueの場合にtrueを返します。それ以外の場合は、falseを返します。

expr1 || expr2:trueに変換できる場合はexpr1を返します。それ以外の場合は、expr2を返します。したがって、ブール値とともに使用すると、|| いずれかのオペランドがtrueの場合、trueを返します。両方がfalseの場合、falseを返します。

于 2012-09-30T15:56:36.337 に答える
1

コードは2つの条件を評価し、ブール値を返します。

var comparison = 2 > 1 && 3 < 1;

この場合、comparisonはに設定されfalseます。

&&true両方の条件が真の場合にのみ戻りますが、少なくとも1つの条件がの場合に||戻ります。truetrue

于 2012-09-30T15:54:56.980 に答える