Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript,在声明变量时会混淆语法_Javascript_Variables_Syntax - Fatal编程技术网

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

JavaScript,在声明变量时会混淆语法,javascript,variables,syntax,Javascript,Variables,Syntax,我最近在一本JavaScript书中遇到了以下代码行,我正在阅读: var col=[],顶部,底部 这是我第一次遇到一个似乎有三个变量的变量。有人能解释一下这行代码中发生了什么吗 这只是一个简短的版本: var col = []; var top; var bottom; 一种样式与另一种样式相比没有真正的优势/劣势,但喜欢将每个范围中的所有var声明组合在一起(正如您在问题中所做的那样): 在具有块作用域的语言中,通常建议 变量必须在第一次使用时声明。但是因为JavaScript 如果

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

var col=[],顶部,底部



这是我第一次遇到一个似乎有三个变量的变量。有人能解释一下这行代码中发生了什么吗

这只是一个简短的版本:

var col = [];
var top;
var bottom;
一种样式与另一种样式相比没有真正的优势/劣势,但喜欢将每个范围中的所有
var
声明组合在一起(正如您在问题中所做的那样):

在具有块作用域的语言中,通常建议 变量必须在第一次使用时声明。但是因为JavaScript 如果没有块作用域,则更明智的做法是声明函数的所有 函数顶部的变量建议使用单个 var语句不能用于每个函数


要全面解释为什么会出现这种情况,您可以查看。以下是语法的相关部分:

VariableStatement:
var
VariableDeclarationList

VariableDeclarationList:VariableDeclarationVariableDeclarationList
VariableDeclarationList

VariableDeclaration:标识符Initialiseropt

还值得注意的是,此处使用的逗号与。它恰好使用了相同的字符。

将其读作

var
    col = [],
    top,
    bottom;

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

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

这是在
javascript
中声明多个变量的通用语法。 它表示您正在声明三个变量,即
col
top
bottom
,其中
col
类型为
array

它与:

var col = [];
var top ;
var bottom;
有用链接:


@Pablo-这是一个偏好的问题。我认为两者都不比另一个更清晰,特别是如果逗号分隔的版本是跨多行编写的,那么清晰性是相对的。有时每行显式声明一个变量要清晰得多,但有时也会声明一些次要变量,以便稍后在脚本中逐行使用,就像正常情况一样,这样会造成20行混乱,没有真正的清晰度优势。更不用说速记声明可以用于开发人员之间的沟通,即某些变量彼此之间有着密切的关系,这对清晰性有很大帮助。@James-感谢您提供了非常详细的答案!而且,这是我第一次听说——我相信这对我将来会是一个很好的资源。所以也谢谢你@JimboJonny-我很高兴你提到了开发人员交流哪些变量彼此之间有密切关系的想法。在我看来,这是一个很好的思考方式,我一定会在以后编写的代码中记住它。谢谢你的回答和有用的链接!我一有机会就去看看。