3

最近、私が取り組んでいるJavaScriptブックで、次のコード行に

var col = [], top, bottom;

出くわしました。3つの変数が与えられているように見える変数に遭遇したのはこれが初めてです。誰かがこのコード行で何が起こっているのか説明できますか?

4

4 に答える 4

4

これは単にこれの短いバージョンです:

var col = [];
var top;
var bottom;

あるスタイルが他のスタイルに勝る本当の長所/短所はありませんが、JSLintvarは、各スコープのすべての宣言を組み合わせるのが好きです(質問にあるように)。

ブロックスコープを持つ言語では、通常、最初に使用するサイトで変数を宣言することをお勧めします。ただし、JavaScriptにはブロックスコープがないため、関数のすべての変数を関数の先頭で宣言する方が賢明です。関数ごとに1つのvarステートメントを使用することをお勧めします


これが当てはまる理由の完全な説明については、ECMAScriptの仕様を参照してください。文法の関連部分は次のとおりです。

VariableStatement:varVariableDeclarationList;

VariableDeclarationList:VariableDeclaration VariableDeclarationList ,VariableDeclaration

VariableDeclaration:識別子Initialiser opt

ここで使用されているコンマは、コンマ演算子と同じではないことにも注意してください。たまたま同じ文字を使っているだけです。

于 2012-06-11T11:41:29.663 に答える
4

次のように読んでください

var
    col = [],
    top,
    bottom;

3つの変数が宣言されていますが、初期化されるのは1つだけです。

于 2012-06-11T11:41:44.287 に答える
1

これは、 で複数の変数を宣言する一般的な構文ですjavascriptcoltop、という 3 つの変数を宣言していると書かれてbottomcolますarray
と同じです:

var col = [];
var top ;
var bottom;

役立つリンク :
http://docstore.mik.ua/orelly/webprog/jscript/ch04_02.htm
http://freewebdesigntutorials.com/javaScriptTutorials/jsArrayObject/declareAnArray.htm

于 2012-06-11T11:45:16.237 に答える
0

このステートメントは、col に 3 つの値を割り当てません。単に 3 つの変数を宣言し、そのうちの 1 つが配列です。

于 2012-06-11T11:42:35.380 に答える