我想知道以下内容与括号的作用之间的区别:
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)
您的示例中不需要它.
确实在继续之前必须评估括号内的块.
在像这样的情况下需要它
(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