JavaScript,声明变量时混淆语法

JavaScript, confusing syntax when declaring a variable

本文关键字:语法 变量 声明 JavaScript      更新时间:2023-09-26

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

var col = [], top, bottom;

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

它只是一个简短的版本:

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

一种风格与另一种风格相比没有真正的优点/缺点,但 JSLint 喜欢将每个范围内的所有var声明组合在一起(就像您在问题中所做的那样):

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


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

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

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

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

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

读作

var
    col = [],
    top,
    bottom;

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

这是

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

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