gpt4 book ai didi

javascript - 使用逗号初始化/设置多个变量,没有 "var"?

转载 作者:行者123 更新时间:2023-11-30 10:33:34 31 4
gpt4 key购买 nike

我见过很多这样的例子:

var foo = 1, bar = 2, baz = 3;

但是,如果没有 var,我可以做同样的事情吗?示例:

// Declare at top of block for readability's sake:
var foo, bar, baz;
// ... stuff here ...
// Later in script, I finally get around to initializing above vars:
foo = 1, bar = 2, baz = 3; // Is using commas without var legal?

换句话说,在 javascript 中有一行我在没有 var 关键字的情况下初始化/设置多个变量是否合法?我还没有找到任何关于这是否被允许和/或得到很好支持的权威文件。

替代方案是:

foo = 1; bar = 2; baz = 3;

这是促使我提出问题的真实世界情况:

for (var i = 0, l = haystack.length; i < l; i++) { ... }

...我想将 for 循环内的变量声明移动到父 block 的顶层,例如:

var i, l;

// ... stuff here ...

for (i = 0, l = haystack.length; i < l; i++) { ... }

...但我只在语句开头使用 var 时才使用逗号。以上是合法的(?),还是应该是:

var i, l;

// ... stuff here ...

for (i = 0; l = haystack.length; i < l; i++) { ... }

(注意添加的分号。)

最佳答案

在javascript中你可以用逗号分隔表达式,它们将从左到右执行,返回最右边表达式的值

所以是的,您通常可以这样做,以下是合法的语法。

for (i = 0, l = haystack.length; i < l; i++) { ... }

在此处查看有关逗号运算符的更多信息:MDN Docs

关于javascript - 使用逗号初始化/设置多个变量,没有 "var"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15370968/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com