括号在javascript中的作用

njo*_*aga 5 javascript

我想知道以下内容与括号的作用之间的区别:

foo.bar.replace(a,b)
Run Code Online (Sandbox Code Playgroud)

(foo.bar).replace(a,b)
Run Code Online (Sandbox Code Playgroud)

在继续使用replace方法之前,括号是否要求首先计算包含的表达式?我在代码中看到了这一点,我正在维护并且好奇为什么它是必要的?例如

location.hash.replace(a,b)
Run Code Online (Sandbox Code Playgroud)

(location.hash).replace(a,b)
Run Code Online (Sandbox Code Playgroud)

Gab*_*oli 6

您的示例中不需要它.

确实在继续之前必须评估括号内的块.

在像这样的情况下需要它

(new Date()).getMilliseconds()
Run Code Online (Sandbox Code Playgroud)

(在这种情况下并非真正需要,如@Teemu所述)


通常使用此语法以避免使用临时变量..

var result = 5.3 + 2.9;
console.log( result.toFixed(1) );
Run Code Online (Sandbox Code Playgroud)

可以变成

console.log( (5.3 +2.9).toFixed(1) );
Run Code Online (Sandbox Code Playgroud)

如果你使用5.3 + 2.9.toFixed(1)toFixed(1)将得到应用到只有2.9,返回一个字符串,然后用5.3串联它的结果将是5.32.9

  • 即使使用`new Date()`也不需要.[的jsfiddle](http://jsfiddle.net/yQ7wS/) (2认同)