私は多くの例を見てきました:
var foo = 1, bar = 2, baz = 3;
しかし、私はなしで同じことをすることができvar
ますか? 例:
// Declare at top of block for readability's sake:
var foo, bar, baz;
// ... stuff here ...
// Later in script, I finally get around to initializing above vars:
foo = 1, bar = 2, baz = 3; // Is using commas without var legal?
言い換えれば、var
キーワードなしで複数の変数を初期化/設定する行を持つことはjavascriptで合法ですか? これが許可されているかどうか、および/または十分にサポートされているかどうかについての決定的なドキュメントを見つけることができませんでした。
別の方法は次のとおりです。
foo = 1; bar = 2; baz = 3;
私の質問を促した現実の状況は次のとおりです。
for (var i = 0, l = haystack.length; i < l; i++) { ... }
for
... 次のように、ループ内の可変宣言を親ブロックの最上位レベルに移動したいと思います。
var i, l;
// ... stuff here ...
for (i = 0, l = haystack.length; i < l; i++) { ... }
var
...しかし、ステートメントの先頭で使用する場合にのみ、コンマを使用したことがあります。上記は合法(?)ですか、そうでなければなりません:
var i, l;
// ... stuff here ...
for (i = 0; l = haystack.length; i < l; i++) { ... }
(追加されたセミコロンに注意してください。)