【问题标题】:JavaScript parentheses (1,2,3,4,5) [duplicate]JavaScript括号(1,2,3,4,5)[重复]
【发布时间】:2013-01-03 22:30:16
【问题描述】:

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

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

这将始终返回最后一个值,在上述情况下为5。我知道使用方括号来命名我的 JavaScript 代码,但从未见过它以这种方式使用。

这种表示法有什么用处,还是只是 JavaScript 的一些副产品?

【问题讨论】:

  • 括号还是圆括号?
  • 你能把你看到的实际代码贴出来吗?当然,您的样本作为表达完全没有用。
  • 这是逗号的属性,而不是括号。
  • 这可用于在不相关的表达式或声明块中执行具有副作用的任意表达式
  • “我知道使用方括号来命名我的 JavaScript 代码” - 括号不会创建命名空间。如果您谈论的是立即执行的函数表达式(function(){...})(),该函数是该技术的关键部分 - 匿名函数周围的括号只是确保函数被视为表达式的几种方法之一。

标签: javascript namespaces closures parentheses


【解决方案1】:

这是逗号运算符。正如 mdn 所述(link),它总是返回后面的值。在您的示例中,它没有多大意义,因为它总是分配a = 5。但是考虑一下:

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

用于在单个语句中递增和递减:i++, j--

编辑:

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

【讨论】:

  • “在你的例子中,括号可以被去掉” - 不(注意var之前)。
【解决方案2】:

Parens 用于将操作分组在一起。这对于设置操作优先级(例如 x = (2+3) * 5 vs x = 2 + 3 * 5)和使您的代码更易于阅读都有帮助。

我怀疑这更多是关于逗号运算符的问题。这是为了在同一行上进行多个分配或操作。这是一篇关于它的好文章:http://javascriptweblog.wordpress.com/2011/04/04/the-javascript-comma-operator/

【讨论】:

  • -1 您是否测试过“以相同方式工作”的代码?括号用于运算符优先级,逗号运算符的优先级低于 assinment。
  • 是的,你是对的。也许我应该在下次打字之前考虑一下。对不起。
猜你喜欢
  • 1970-01-01
  • 2018-02-11
  • 2011-09-18
  • 2019-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-06
相关资源
最近更新 更多