私はこのようないくつかの変数を見ました:
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を返します。したがって、ブール値とともに使用すると、&&は両方のオペランドがtrueの場合にtrueを返します。それ以外の場合は、falseを返します。
expr1 || expr2
:trueに変換できる場合はexpr1を返します。それ以外の場合は、expr2を返します。したがって、ブール値とともに使用すると、|| いずれかのオペランドがtrueの場合、trueを返します。両方がfalseの場合、falseを返します。
コードは2つの条件を評価し、ブール値を返します。
var comparison = 2 > 1 && 3 < 1;
この場合、comparison
はに設定されfalse
ます。
&&
true
両方の条件が真の場合にのみ戻りますが、少なくとも1つの条件がの場合に||
戻ります。true
true