首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用逗号还是分号?

使用逗号还是分号?
EN

Stack Overflow用户
提问于 2013-03-19 03:57:07
回答 2查看 19.4K关注 0票数 63

给定以下代码:

代码语言:javascript
复制
var fn = function () {
    var x = 'x',
    y = 'y';
    this.a = 'a',
    this.b = 'b',
    this.c = 'c';
    this.d = 'd',
    this.e = 'e';   
}

可以看出,两者兼而有之。

使用一个或另一个的好处是什么?

我的理解是,分号是语句的结尾。并且应该使用逗号将多个声明串在一起。

那么,在这个例子中应该只有两个分号,这样说安全吗?

代码语言:javascript
复制
var fn = function () {
    var x = 'x',
    y = 'y';
    this.a = 'a',
    this.b = 'b',
    this.c = 'c',
    this.d = 'd',
    this.e = 'e';   
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-19 04:02:52

逗号运算符是可以在表达式中使用的运算符。它用于分离出多个不同的表达式,其含义是“计算以下所有表达式,然后生成最终表达式的值”。例如:

代码语言:javascript
复制
a = 1, b = 2, c = 3

表示“计算a = 1,然后是b = 2,然后是c = 3,然后计算为表达式c = 3的值。

分号不是运算符,不能在表达式中使用。它用作JavaScript语法的一部分,用于标记被视为语句的表达式的结尾。例如,你可以说

代码语言:javascript
复制
a = 1; b = 2; c = 3;

这意味着“有三个语句要按顺序执行:计算第一个表达式作为第一个语句,第二个表达式作为第二个语句,第三个表达式作为第三个语句”。

在这一点上,两者并不是完全可以互换的。例如,您不能编写

代码语言:javascript
复制
var a = 1, var b = 2;

因为var a = 1var b = 2是语句,而不是表达式,因此不能用逗号分隔。在这里你必须使用分号。

(注:你可以说

代码语言:javascript
复制
var a = 1, b = 2;

因为该语言特别允许使用逗号作为声明语句语法的一部分。在这里,逗号不用作运算符。)

同样的,你也不能说

代码语言:javascript
复制
a = (b = 1; c = 2);

因为在这里,表达式的右侧必须是一个表达式,而不是语句,并且使用;来分隔语句。内部的分号必须是逗号。(话又说回来,这段代码在一开始就相当笨拙和不寻常,所以您可能根本不应该这样做!)

从风格的角度来看,逗号运算符很少使用,而且足够晦涩,可能会让相当称职的JavaScript程序员绊倒。因此,我强烈建议不要使用它,而是遵循JavaScript中关于使用分号终止语句的既定约定,即使使用逗号分隔每个用作语句的表达式在语法上是合法的,也是等效的。

希望这能有所帮助!

票数 91
EN

Stack Overflow用户

发布于 2013-03-19 03:59:43

最好始终保持与约定一致。要么全是分号,要么全是逗号,我肯定你更喜欢使用分号,而不是到处都是逗号。

也没有速度增益,所以没什么好担心的。

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

https://stackoverflow.com/questions/15485735

复制
相关文章

相似问题

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