JS中圆括号()起什么作用?

我知道圆括号() 在JS中作用有很多种, 但是当前只讨论以下给出的例子

10.toString()    // Invalid or unexpected token
(10).toString()  // "10"

{}+''           // 0
({})+''         // "[object Object]"
阅读 6.3k
7 个回答

. :是 小数点,也是 属性访问符
{}:是 代码块,也是 对象

圆括号就和数学运算里的圆括号一样,乖乖地定义了运算符的优先级(最高级)。避免像上面那样的歧义发生。

10.toString()   // 语法错误
(10).toString() // 5解析为字面量 toString解析为属性

{}+''           // {}为代码块 执行+''
({})+''         // {}为对象   执行对象+''

在你的例子中,简单的说,直接用(),就相当于定义了一个立即执行函数,回调对象是()包裹着的内容

(10) //立即执行,返回10
({}) //立即执行,返回{}

通过这个特性,你也可以给这个函数加参数

(v => v + 10)(10); //返回20

我们也经常利用这个特性简化我们的代码

[1, 2, 3].map(v => {
  return {value: v};
});

可以简化为下面这样

[1, 2, 3].map(v => ({value: v}))

括号可以加强意义表达,减少歧义。

把字面量赋给了匿名变量

新手上路,请多包涵

{}+''和({})+''返回的是一样的,都是[object Object]

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题