最近、私が取り組んでいるJavaScriptブックで、次のコード行に
var col = [], top, bottom;
出くわしました。3つの変数が与えられているように見える変数に遭遇したのはこれが初めてです。誰かがこのコード行で何が起こっているのか説明できますか?
4 に答える
これは単にこれの短いバージョンです:
var col = [];
var top;
var bottom;
あるスタイルが他のスタイルに勝る本当の長所/短所はありませんが、JSLintvar
は、各スコープのすべての宣言を組み合わせるのが好きです(質問にあるように)。
ブロックスコープを持つ言語では、通常、最初に使用するサイトで変数を宣言することをお勧めします。ただし、JavaScriptにはブロックスコープがないため、関数のすべての変数を関数の先頭で宣言する方が賢明です。関数ごとに1つのvarステートメントを使用することをお勧めします。
これが当てはまる理由の完全な説明については、ECMAScriptの仕様を参照してください。文法の関連部分は次のとおりです。
VariableStatement:
var
VariableDeclarationList;
VariableDeclarationList:VariableDeclaration VariableDeclarationList
,
VariableDeclarationVariableDeclaration:識別子Initialiser opt
ここで使用されているコンマは、コンマ演算子と同じではないことにも注意してください。たまたま同じ文字を使っているだけです。
次のように読んでください
var
col = [],
top,
bottom;
3つの変数が宣言されていますが、初期化されるのは1つだけです。
これは、 で複数の変数を宣言する一般的な構文ですjavascript
。col
、top
、という 3 つの変数を宣言していると書かれてbottom
いcol
ますarray
。
と同じです:
var col = [];
var top ;
var bottom;
役立つリンク :
http://docstore.mik.ua/orelly/webprog/jscript/ch04_02.htm
http://freewebdesigntutorials.com/javaScriptTutorials/jsArrayObject/declareAnArray.htm
このステートメントは、col に 3 つの値を割り当てません。単に 3 つの変数を宣言し、そのうちの 1 つが配列です。