2011-04-07 16 views
11

MDN दावा है कि:कॉमा ऑपरेटर तर्क सूची में दूसरे के बजाय पहला मान देता है?

अल्पविराम ऑपरेटर अपनी ऑपरेंड के दोनों का मूल्यांकन करता है (बाएं से दाएं) और रिटर्न दूसरे संकार्य का मूल्य।

हालांकि, जब मैंने <script> alert(1, 2); </script> चलाने की कोशिश की, तो यह "2" के बजाय "1" दिखाता है।

क्या मैं कुछ गलत समझ रहा हूं?

उत्तर

19

फ़ंक्शन कॉल के संदर्भ में, कॉमा का उपयोग एक-दूसरे से पैरामीटर को अलग करने के लिए किया जाता है। तो आप जो कर रहे हैं वह alert() पर दूसरा पैरामीटर गुजर रहा है जिसे चुपचाप अनदेखा किया जाता है।

क्या आप चाहते हैं संभव इस तरह से है:

alert((1,2)); 

अतिरिक्त कोष्ठक अपने दम पर एक पैरामीटर के रूप में; उनके अंदर आप अल्पविराम के रूप में अल्पविराम का उपयोग कर सकते हैं।

6

कॉमा (,) भी एक पैरामीटर विभाजक है।

इसके बजाय alert((1,2)) का उपयोग करें।

2

जब आप इसे इस तरह उपयोग करते हैं, तो कॉमा ऑपरेटर नहीं होता है, यह alert विधि पर कॉल के पैरामीटर के बीच एक विभाजक है।

आप उनके आसपास कोष्ठक डाल दिया है ताकि यह एक अभिव्यक्ति है, यह आप 2 दर्शाएंगी:

alert((1,2));