JavaScript括号 (1,2,3,4,5)

3

我刚刚在JavaScript中遇到了一些符号,如下所示:

var a = (1,2,3,4,5);

这将始终返回最后一个值,在上述情况下为5。我知道可以使用括号来给JavaScript代码命名空间,但从未见过它被这样使用。
这种符号有什么用处,还是只是JavaScript的副产品?

括号还是圆括号? - Dennis
1
你能否提供该代码的实际样例?因为你所给出的示例是毫无用处的表达。 - Michael Berkowski
2
这是逗号的属性,而不是括号的属性。 - Eric
这可以用于在不相关的表达式或声明块中执行具有副作用的任意表达式。 - John Dvorak
2
我知道使用括号来命名空间化我的JavaScript代码 - 括号不会创建命名空间。如果你说的是立即执行函数表达式 (function(){...})(),那么函数是该技术的关键部分 - 匿名函数周围的括号只是确保该函数被视为表达式的几种方式之一。 - nnnnnn
2个回答

5

这是逗号运算符。根据 mdn 上的说法 (链接),它总是返回后面的值。在您的示例中,这没有太多意义,因为它将始终分配 a = 5。但考虑以下情况:

for (var i = 0, j = 9; i <= 9; i++, j--) {
    ...
}

这是一个用于在单个语句中进行递增和递减的操作:i++,j--

编辑:

在您的示例中,括号是必需的,因为这是变量声明。在其他情况下,它们可以省略。


2
在你的例子中,括号可以去掉(注意前面有 var)。 - georg

-1

1
你测试过代码是否“以相同的方式工作”了吗?括号用于操作符优先级,逗号运算符的优先级低于赋值。 - Eric
是的,你说得对。也许下次我应该先想再打字。抱歉。 - Warren R.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接