単なる知的好奇心から、なぜjavascriptは受け入れますか
var z = z || [];
z を初期化する (z が最初に定義されているように)
ただし、var がないと、エラーがスローされます (グローバル空間で)
z = z || [];
(z が以前に定義されていない場合)
グローバル空間では、VAR を使用する必要はありませんが、悪い習慣かもしれません。
あなたが言う前に、これは次のような質問の複製です
var キーワードの目的は何ですか? また、いつ使用 (または省略) する必要がありますか?
「グローバルスコープにいる場合、違いはありません」という宣言に注意してください。
私の実際の例を考えると、明らかにそれは 100% 真実ではありません。
これは癖ですか、それとも正当なロジックはありますか?
私が学んだように答えの要約を追加します:
ティムのおかげで(以下を参照)、私の誤解の鍵はこれを認識していなかったことです(javascriptの基礎)
var z; z が既に存在する場合は何もしません
「var z」が常に初期化されると誤って仮定すると、この式は両方の方法でそれを持っているように見えます。
左から順に、「var z」は単に z が定義されていることを確認しますが、既存の値が既に存在する場合、実際には影響しません。右側では、z が既に存在する場合はそれが使用されます。そうでない場合は、変数が宣言されただけで (ただし空)、使用されませんが、エラーはスローされません。
これは、Javascript でのこの種のスコーピングと巻き上げの問題に関する優れた記事です: http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting
minitech および貢献してくれた他のすべての人に感謝します。