2017-07-12 31 views
9

我一直在尝试以下两种说法:圆括号 “()” 创建差异

  1. 声明做工精细和它的返回结果

    console.log((window.custom || (window.custom = "New window"))); 
     
    
     
    

  2. 陈述刚删除()并显示如下错误

    Uncaught Reference Error: Invalid left-hand side in assignment

    console.log((window.custom || window.custom = "New window" )); 
     
    
     
    

什么错第二次发言?

回答

19

||具有比=更高的优先级,从而为第二个被解析:

console.log((window.custom || window.custom) = "New Window"); 

不能分配给||表达式的结果。

这优先就是为什么你可以写的东西,如:

somevar = window.custom || "Default value"; 
+2

所以()的优先级高于|| ,第一条陈述的理由是什么? –

+5

圆括号具有最高优先级,因为它们用于强制任何特定的分组。 – Barmar