我最近在一本正在研究的 JavaScript 书中发现了以下代码行:
var col = [], top, bottom;
这是我第一次遇到一个变量似乎被赋予了三个变量。有人能解释一下这行代码发生了什么吗?
这只是一个较短的版本:
var col = [];
var top;
var bottom;
一种风格相对于另一种风格没有真正的优势/劣势,但是 JSLint 喜欢将每个范围中的所有
var
声明组合在一起(正如您在问题中所言):
在具有块作用域的语言中,通常建议 变量在首次使用时声明。但因为 JavaScript 没有块作用域,更明智的做法是声明函数的所有内容 变量位于函数顶部。 建议单人 每个函数使用 var 语句。
要了解为什么会出现这种情况的完整解释,您可以查看 ECMAScript 规范。这是语法的相关部分:
变量语句:
变量声明列表var
;
变量声明列表:变量声明变量声明列表
变量声明,
变量声明:标识符初始化器opt
还值得注意的是,这里使用的逗号与逗号运算符不同。只是碰巧使用了相同的字符。
var
col = [],
top,
bottom;
声明了三个变量,但只初始化了一个。