3

プロジェクトを勉強しているときに、以下のJavaScript行を見つけました:

var array = array || [];    // <--- confusion here (what does || mean)

誰かが代わりに上記のように配列を宣言した理由を誰か教えてください:
var array = [];

更新:答えを得た後、上記を行うためのより読みやすい方法を見つけました:

if(array == undefined) 
    var array = [];
4

2 に答える 2

7

単純に との違いvar array = [];は、既存の値が既に存在する場合、この値は に置き換えられないこと[]です。

それは機能するので

これはと同等です

var array; // does nothing if array is already declared in the same scope
if (!array) array = [];

この種の構成は、モジュラー コードがあり、インポートの順序を課したくない場合によく使用されます。同じ行で始まるファイルが多数ある場合があります。

var myModule = myModule || {};

例を次に示します: SpaceBullet ソース コード(js ファイルの最初の行を見てください)。

于 2013-08-24T12:54:19.650 に答える
2

これは、値または配列が初期化されている場合は、それを変数に割り当て、それ以外の場合は、この変数を空の配列として初期化することを意味します。

{} で同様の宣言が表示されます

var someObject = anObject || {};
于 2013-08-24T12:56:04.810 に答える