プロジェクトを勉強しているときに、以下のJavaScript行を見つけました:
var array = array || []; // <--- confusion here (what does || mean)
誰かが代わりに上記のように配列を宣言した理由を誰か教えてください:
var array = [];
更新:答えを得た後、上記を行うためのより読みやすい方法を見つけました:
if(array == undefined)
var array = [];
プロジェクトを勉強しているときに、以下のJavaScript行を見つけました:
var array = array || []; // <--- confusion here (what does || mean)
誰かが代わりに上記のように配列を宣言した理由を誰か教えてください:
var array = [];
更新:答えを得た後、上記を行うためのより読みやすい方法を見つけました:
if(array == undefined)
var array = [];
単純に との違いvar array = [];は、既存の値が既に存在する場合、この値は に置き換えられないこと[]です。
それは機能するので
varスコープ内で既に宣言されている場合、新しい変数を宣言しません (変数宣言は巻き上げられます) 。|| 最初の偽でない値を返します(たとえば、定義済みの配列)これはと同等です
var array; // does nothing if array is already declared in the same scope
if (!array) array = [];
この種の構成は、モジュラー コードがあり、インポートの順序を課したくない場合によく使用されます。同じ行で始まるファイルが多数ある場合があります。
var myModule = myModule || {};
例を次に示します: SpaceBullet ソース コード(js ファイルの最初の行を見てください)。
これは、値または配列が初期化されている場合は、それを変数に割り当て、それ以外の場合は、この変数を空の配列として初期化することを意味します。
{} で同様の宣言が表示されます
var someObject = anObject || {};