我在查看@robbmj对这个问题的回答时,发现了以下代码:
var timer = duration, minutes, seconds;
还有一个在这里:
var start = Date.now(),
diff,
minutes,
seconds;
我以前从未接触过这段代码,请问有人可以解释一下这两行代码的作用,或者至少告诉我如何阅读它们吗?
我在查看@robbmj对这个问题的回答时,发现了以下代码:
var timer = duration, minutes, seconds;
还有一个在这里:
var start = Date.now(),
diff,
minutes,
seconds;
我以前从未接触过这段代码,请问有人可以解释一下这两行代码的作用,或者至少告诉我如何阅读它们吗?
示例:
let [a, b, c] = [0, 0, 0]
var start = Date.now(),
diff,
minutes,
seconds;
as
var start = Date.now();
var diff;
var minutes;
var seconds;
在代码片段1中,您可以像初始化start
变量一样,一次声明多个变量。
您可以在同一行中初始化多个变量,例如:
var a = 1, b = 2, c = 3;
--timer < 0
将会是 false
。 --timer
会先将 timer 减一,然后再进行比较,而 timer-- < 0
则会先进行比较,然后再减一。 - Zohaib Ijaztimer
、minutes
和seconds
。但是将变量duration
的值赋给了变量timer。var timer = duration;
var minutes;
var seconds;
var a = 0
不等同于 var a;
! - Luca Kiebel你的第二个例子只是用换行符分隔。
在单行上定义多个变量很烦人,因为要删除第一个或最后一个声明,因为它们包含var关键字和分号。每次添加新的声明时,都必须将旧行中的分号更改为逗号。
因此,不建议在单行上定义多个变量
使用它
var timer = duration;
var minutes = 0;
var seconds = 0;
而不是
var timer = duration, minutes, seconds;
diff
,minutes
和seconds
仍将是undefined
。这可以帮助使var
声明更加明显,因为您将不得不担心提升。 - zero298var timer = duration; var minutes; var seconds;
稍微压缩一下,timer
被设置成duration
,minutes
和seconds
未定义。第二个例子同样适用,其中start
被定义为Date.now()
的值,其他变量被“初始化”。 - Luca Kiebel逗号运算符
的文档。不过需要注意的是,这种风格在任何构建工具自动缩小可交付代码之前就已经流行了。实际上,它被用作手动缩小代码的一种方式(无需为每个声明编写额外的var x;
)。 - Jason Cust