मैं सी # का उपयोग कर जावास्क्रिप्ट ब्लॉक संकलित करने के लिए छोटी उपयोगिता बना रहा हूं। मैं टर्नरी ऑपरेटर के निष्पादन प्रवाह को समझने की कोशिश कर रहा हूं। अब जब मैं एक जावास्क्रिप्ट Chrome या Firefox का उपयोग कर चला रहा हूँ:जावास्क्रिप्ट टर्नरी ऑपरेटर परिणाम
var k = 27;
var o = 78;
var a = k < 100 ? o+=2 > 11 ? "T" : "F" : o < 100 ? "J" : "P";
alert(a);
यह अगर "ओ + = 2" झूठे रिटर्न मुझे परिणाम "टी" या 'एफ' देना होना चाहिए। लेकिन इसके बजाय यह "78F" देता है। क्या कोई मुझे बता सकता है कि इसके पीछे तर्क क्या है।
मैं नहीं नेस्टिंग त्रिगुट ऑपरेटरों की सिफारिश करेंगे मूल्यांकन किया जाता है। हालांकि एक-लाइनर रखना हमेशा अच्छा होता है, अन्य डेवलपर्स के लिए यह समझना बहुत आसान होता है कि यदि आप इसे और अन्य कथन में विभाजित करते हैं। मुझे एक बार भागों में 6 नेस्टेड टर्नरी के साथ एक आवेदन पर काम करना पड़ा।यह डीबग करने के लिए एक जानवर था। – HockeyJ
कृपया अभिव्यक्तियों को अलग करने के लिए ब्रेसिज़ '(' और ')' का उपयोग करें और हर किसी की आंखों के लिए इसे आसान बनाएं। यह शायद आपको वांछित परिणाम भी देगा। – Aukhan
Nesting ternaries एक भयानक विचार है .. – rlemon