wtfjs पर, मैंने पाया कि निम्नलिखित कानूनी जावास्क्रिप्ट है।जावास्क्रिप्ट "टुपल" नोटेशन: इसका क्या मतलब है?
",,," == Array((null,'cool',false,NaN,4)); // true
तर्क (null,'cool',false,NaN,4)
मेरे लिए एक टपल की तरह दिखता है, लेकिन जावास्क्रिप्ट tuples है नहीं है!
मेरे जावास्क्रिप्ट कंसोल में कुछ त्वरित परीक्षण निम्नलिखित उत्पन्न करते हैं।
var t = (null,'cool',false,NaN,4); // t = 4
(null,'cool',false,NaN,4) === 4; // true
(alert('hello'), 42); // shows the alert and returns 42
यह बयान के अर्धविराम ;
अलग की गई सूची की तरह व्यवहार करने के लिए वास्तव में, बस पिछले बयान का मूल्य लौटने प्रकट होता है।
क्या कोई संदर्भ है जो इस वाक्यविन्यास और इसके अर्थशास्त्र का वर्णन करता है? यह क्यों अस्तित्व में है, यानी इसका उपयोग कब किया जाना चाहिए?
यह अल्पविराम ऑपरेटर है: http://javascriptweblog.wordpress.com/2011/04/04/the-javascript-comma-operator/ – Lepidosteus
कॉमा ऑपरेटर भी (एबी) कार्यों की श्रृंखला चलाने के लिए उपयोग किया जा सकता है एक टर्नरी शाखा के अंदर, क्योंकि यह आखिरी बयान के परिणाम को वापस कर देगा: 'var a = isTrue? (बी = एफ (सी), जी (बी)): (बी = जी (सी), एफ (बी)) '। शायद ही कभी बुद्धिमान, लेकिन कभी-कभी उपयोगी होता है यदि पठनीयता पर बहुत संक्षिप्त कोड पसंद किया जाता है, या त्वरित डिबगिंग उद्देश्यों के लिए। – Fx32
इसे जावास्क्रिप्ट में 'अभिव्यक्ति' कहा जाता है, यह केवल अल्पविराम ऑपरेटर का प्रभाव नहीं है हालांकि यह एक छोटा सा हिस्सा निभाता है; अल्पविराम ऑपरेटर की वजह से यह अभिव्यक्ति हल हो गई है। आप किसी भी मूल्यांकन अभिव्यक्ति के किसी भी परिवर्तनीय चर के लिए एक मूल्य निर्धारित कर सकते हैं। भले ही वह अभिव्यक्ति अपरिभाषित है। – Relic