JavaScript,在声明变量时混淆语法

时间:2012-06-11 11:39:34

标签: javascript variables syntax

我最近在一本JavaScript书中遇到了以下代码:

var col = [], top, bottom;

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

4 个答案:

答案 0 :(得分:4)

这只是一个较短的版本:

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

一种风格与另一种风格相比没有真正的优势/劣势,但JSLint喜欢在每个范围内合并所有var声明(正如您在问题中所说的那样):

  

在具有块范围的语言中,通常建议使用   变量应在首次使用的站点声明。但是因为JavaScript   没有块范围,声明所有函数是明智的   函数顶部的变量。 建议单一   每个函数都使用var语句


要详细说明原因,您可以查看ECMAScript spec。这是语法的相关部分:

  

VariableStatement:var VariableDeclarationList ;

     

VariableDeclarationList:VariableDeclaration VariableDeclarationList , VariableDeclaration

     

VariableDeclaration:Identifier Initialiser opt

值得注意的是,此处使用的逗号comma operator相同。它碰巧使用相同的字符。

答案 1 :(得分:4)

将其读作

var
    col = [],
    top,
    bottom;

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

答案 2 :(得分:1)

这是在javascript中声明多个变量的一般语法。 它表示您要声明三个变量,即coltopbottom,其中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

答案 3 :(得分:0)

此语句不会为col分配三个值,它只是声明三个变量,其中一个是数组。