これはスクリプトの先頭でよく見かけますが、それが何を意味するのか完全にはわかりません。誰か説明できますか?
var whatevername = whatevername || {};
これはスクリプトの先頭でよく見かけますが、それが何を意味するのか完全にはわかりません。誰か説明できますか?
var whatevername = whatevername || {};
OR 演算子を使用してデフォルト値を設定します。が設定されている場合whatevername
はそれが使用され、それ以外の場合は新しい空のオブジェクトが使用されます。
例:
function sayHi(options){
options = options || {};
if (options.useAlert){
alert("hi");
} else {
console.log("hi");
}
}
この場合、オプション パラメータが関数に渡されなくても、いつでも使用できます。
sayHi();
sayHi({"useAlert": true});
最初のケース{}
では が使用され、options.useAlert は未定義になります。if ステートメントでは、false に設定されているのと同じで、console.log
印刷に使用されます。
OR 演算子は通常、次のように使用されます。
if (hasAnEmailAddress || hasAPhoneNumber) {contactPerson()}
が true の場合hasAnEmailAddress
、演算子は のhasAnEmailAddress
代わりにの値を返しますhasAPhoneNumber
。true でない場合は、2 番目の引数の値hasAPhoneNumber
が返されます。
そのロジックは、デフォルト値を設定するときに使用されます。最初の引数が偽の場合、2 番目の引数が返されます (ブール値でなくても)。
whatevername
まだ初期化されていない場合は、空のオブジェクトで初期化whatevername
されます。
同等のコード
if(!whatevername) whatevername = {}
これはデフォルト値ステートメントです。||
おそらくご存知のとおり、OR の記号です。
このステートメントには、「whatevername を whatevername または空のオブジェクトに設定する」と書かれています。OR は、真の値 (空でも偽でもない) を読み取る 2 つのオブジェクトの最初のオブジェクトを選択します。whatwhatname が設定されている場合は、whatevername が取得されます。そうでない場合 (または null に設定されている場合) は、空のオブジェクトが取得されます。