2017-07-12 21 views
9

fark yaratmak: iyi çalışıyorYuvarlak parantez "()" Ben şu iki ifade çalışıyorum

  1. deyimi ve dönen sonuç

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

  2. ekstre sadece kaldırıldı() ve onun izlediği hata

    Uncaught Reference Error: Invalid left-hand side in assignment

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

neyin 2 ifadeye yanlış?

cevap

19

||= daha yüksek önceliğe sahiptir, bu nedenle ikinci bir ayrıştırılır:

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

Bir || ifadenin sonucuna atayamazsınız. gibi şeyler yazabilirsiniz neden

Bu öncelik bağlıdır:() Böylece

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

daha yüksek önceliğe sahiptir || 1. deyimin çalışma sebebi bu mu? –

+5

Parantezler en yüksek önceliğe sahiptir, çünkü istediğiniz herhangi bir belirli gruplamayı zorlamak için kullanılırlar. – Barmar