Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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 - Fatal编程技术网

javascript一行多变量赋值

javascript一行多变量赋值,javascript,Javascript,所以我在检查@robbmj的答案时,发现了以下代码: var timer = duration, minutes, seconds; 这里还有一个: var start = Date.now(), diff, minutes, seconds; 我以前从未读过那个代码。有人能解释一下这两行代码是做什么的,或者至少是如何读取它们的吗?第一行创建了3个变量:定时器,分钟和秒。 但是正在将变量持续时间的值分配给变量计时器 与示例2中的故事相同,只是用换行符分隔 这是一个简短

所以我在检查@robbmj的答案时,发现了以下代码:

var timer = duration, minutes, seconds;
这里还有一个:

var start = Date.now(),
    diff,
    minutes,
    seconds;

我以前从未读过那个代码。有人能解释一下这两行代码是做什么的,或者至少是如何读取它们的吗?

第一行创建了3个变量:
定时器
分钟
。 但是正在将变量
持续时间的值分配给变量计时器

与示例2中的故事相同,只是用换行符分隔

这是一个简短的说法

var timer = duration;
var minutes;
var seconds;
你可以写

var start = Date.now(),
diff,
minutes,
seconds;
作为

因此,您可以在一行中声明多个变量,就像在代码片段1中一样,我们在这里初始化
start
,但只声明其他变量

您可以在一行中初始化多个,如

var a = 1, b = 2, c = 3;

第二个示例用换行符分隔

在一行上定义多个变量以删除第一个或最后一个声明,因为它们包含var关键字和分号。每次添加新声明时,必须将旧行中的分号改为逗号

因此,建议不要在一行上定义多个变量

使用它

var timer = duration;
var minutes = 0;
var seconds = 0;
而不是

var timer = duration, minutes, seconds;

您也可以像这样使用分解:

let [a, b, c] = [0, 0, 0]

例如,
var定时器=持续时间,分钟=x,秒=y<代码>分钟
已声明,但没有任何初始值,这些只是声明<代码>差异
分钟
仍将是
未定义的
。这有助于使
var
声明更加明显,因为您将不得不担心提升。第一个设置var计时器=持续时间,然后设置2个空/未定义的变量-分和秒。第二组以当前日期开始,然后在范围中设置三个null/未定义的变量。基本上,如果在变量声明后面加一个逗号,这意味着您可以直接在该范围内声明另一个变量,而无需再次说
var
:这就是代码:
var timer=duration;var分钟;var秒稍微压缩,
定时器
设置为
持续时间
分钟
未定义。同样的情况也适用于第二个示例,其中
start
被定义为
Date.now()
的值,并且其他变量被“初始化”。对于正在发生的事情,一个很好的参考是文档。不过,关于这种风格还有一点需要注意:它是在现在可以自动缩小可交付代码的任何构建工具出现之前形成的。实际上,它被用作手动缩小代码的一种方式(无需为每个声明编写额外的
var x;
var a=0
var a!是的,那是真的,对不起。谢谢@JacobSchneider:)不用担心。很乐意帮忙。@jes Welcome:)例如timer=1;因此,
--timer<0
将为
false
--计时器将首先递减计时器,然后与
计时器进行比较--<0
将首先进行比较,然后递减。是的,我刚刚在这里读到了,再次非常感谢:)
let [a, b, c] = [0, 0, 0]