首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用逗号初始化/设置多个变量,而不使用"var"?

使用逗号初始化/设置多个变量,而不使用"var"?
EN

Stack Overflow用户
提问于 2013-03-12 20:00:08
回答 1查看 1.1K关注 0票数 1

我见过许多例子:

代码语言:javascript
代码运行次数:0
运行
复制
var foo = 1, bar = 2, baz = 3;

但是,如果没有var,我也可以这样做吗?示例:

代码语言:javascript
代码运行次数:0
运行
复制
// 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关键字的情况下初始化/设置多个vars的行合法吗?我未能找到任何关于这是否被允许和/或是否得到充分支持的明确文件。

另一种选择是:

代码语言:javascript
代码运行次数:0
运行
复制
foo = 1; bar = 2; baz = 3;

下面是我提出问题的真实世界的情况:

代码语言:javascript
代码运行次数:0
运行
复制
for (var i = 0, l = haystack.length; i < l; i++) { ... }

..。我希望将for循环中的varible delcaration移到父块的顶层,例如:

代码语言:javascript
代码运行次数:0
运行
复制
var i, l;

// ... stuff here ...

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

..。但在语句开头使用var时,我只使用过逗号。上述规定是合法的还是应当是:

代码语言:javascript
代码运行次数:0
运行
复制
var i, l;

// ... stuff here ...

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

(请注意添加的分号。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-12 20:01:03

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

所以,是的,一般情况下你可以这样做,下面是法律语法。

代码语言:javascript
代码运行次数:0
运行
复制
for (i = 0, l = haystack.length; i < l; i++) { ... }

请参阅有关逗号运算符的更多信息:MDN文档

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15370968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档