0

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

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

{}+''           // 0
({})+''         // "[object Object]"
欧薇娅 269
2019-01-07 提问
6 个回答
2

已采纳

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

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

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

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

做个小补充,1和2的关键区别是.,数字带点默认为小数,因此需要带2个点

10..toString()

stonehank · 1月7日

添加评论
1

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

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

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

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

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

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

可以简化为下面这样

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

像这样的操作符。。想搞清楚它的全部特性,最直接的方式就是查阅规范。。

http://www.ecma-international...

0

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

0

把字面量赋给了匿名变量

撰写答案

推广链接