Rubyの||=
メカニズムが大好きです。変数が存在しない場合、またはnil
である場合は、変数を作成して、何かに等しく設定します。
amount # is nil
amount ||= 0 # is 0
amount ||= 5 # is 0
JavaScriptで同様のことをする必要があります。これを行うための慣習または適切な方法は何ですか? ||=
は有効な構文ではないことを知っています。それを処理する2つの明白な方法は次のとおりです。
window.myLib = window.myLib || {};
// or
if (!window.myLib)
window.myLib = {};
どちらも絶対に正しいですが、Rubyで||=
のような機能を探している場合。 variable = variable || {}
である最初のメソッドは、あなたが探しているものです:)
論理的なOR演算子||
を使用して、lVal
が偽の値である場合に正しいオペランドを評価できます。
偽の値には、_null, false, 0, "", undefined, NaN
などが含まれます
x = x || 1
オブジェクトを使用している場合、次のように(ES6以降)構造化を使用できます。
({ myLib: window.myLib = {} } = window);
...しかし、混乱を除いて、受け入れられた答えよりも何も得られません。