2017-07-12 15 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" )); 
     
    
     
    

क्या 2 बयान के साथ गलत?

उत्तर

19

||= की तुलना में अधिक पूर्वता है, तो के रूप में एक दूसरे के पार्स किया गया है:

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

आप एक || अभिव्यक्ति का परिणाम के लिए निर्दिष्ट नहीं कर सकते।

यह पूर्वता कारण है कि आप की तरह बातें लिख सकते हैं:

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

तो() की तुलना में अधिक पूर्वता है || , कि पहला कथन काम करने का कारण? –

+5

अभिभावक की सर्वोच्च प्राथमिकता है, क्योंकि इनका उपयोग किसी भी विशिष्ट समूह को मजबूर करने के लिए किया जाता है। – Barmar

संबंधित मुद्दे