3

我最近在我正在阅读的一本 JavaScript 书籍中遇到以下代码行:

var col = [], top, bottom;

这是我第一次遇到一个看似被赋予三个变量的变量。有人可以解释这行代码中发生了什么吗?

4

4 回答 4

4

它只是一个较短的版本:

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

一种风格相对于另一种风格没有真正的优势/劣势,但JSLint喜欢将var每个范围内的所有声明组合起来(正如您在问题中所提出的那样):

在具有块范围的语言中,通常建议在第一次使用的地方声明变量。但是因为 JavaScript 没有块作用域,所以在函数顶部声明函数的所有变量更为明智。建议每个函数使用单个 var 语句


有关为什么会这样的完整解释,您可以查看ECMAScript 规范。这是语法的相关部分:

变量声明:var变量声明列表;

变量声明列表:变量声明变量声明列表,变量声明

变量声明:标识符初始化器选择

还值得注意的是,这里使用逗号与逗号运算符不同。它只是碰巧使用了相同的字符。

于 2012-06-11T11:41:29.663 回答
4

读为

var
    col = [],
    top,
    bottom;

声明了三个变量,但只初始化了一个。

于 2012-06-11T11:41:44.287 回答
1

这是在 中声明多个变量的一般语法javascript。它说你要声明三个变量,即col, top, bottomwhere colis of type 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 分配三个值,它只是声明了三个变量,其中一个是数组。

于 2012-06-11T11:42:35.380 回答