एक नियंत्रण की तरह इसके बारे में मत सोचो अधिक पठनीय है ब्लॉक (यानी: अगर कोई और कोई स्विच)। यह वास्तव में इसके अंदर कोड चलाने के लिए नहीं है।
आप कर सकते हैं। यह बहुत बदसूरत, बहुत तेज हो जाता है, जो उद्देश्य को हरा देता है।
क्या तुम सच में करने के लिए इसका उपयोग करना चाहते बताए मूल्यों है।
अपने प्रारंभिक उदाहरण लें और एक छोटे से अपने सिर पर यह मोड़, आपको मिलता है:
direction = (this.dragHandle.hasClass("handle-low")) ? "left" : "right";
देखें। अब मैंने जो किया है वह है कि मैंने ऐसा कुछ लिया है जिसके लिए एक if/else या स्विच की आवश्यकता होती, जिसे उस मान को असाइन करने के लिए उपयोग किया जाता था, और मैंने इसे अच्छी और सुंदर बना दिया है।
तुम भी एक else if-त्रिगुट के प्रकार के कर सकते हैं:
y = (x === 2) ? 1 : (x === 3) ? 2 : (x === 4) ? 7 : 1000;
तुम भी यदि आप चाहें, कोड आग के लिए इसका इस्तेमाल कर सकते हैं, लेकिन यह कुछ समय के बाद वास्तव में मुश्किल हो जाता है, क्या पता करने के लिए कहाँ जा (पिछले उदाहरण देखते हैं कि कैसे भी काम एक नज़र में अजीब लग रही शुरू कर सकते हैं देखने के लिए) ...
((this.dragHandle.hasClass("...")) ? fireMe(something) : noMe(somethingElse));
... इस आम तौर पर काम करेंगे।
लेकिन यह वास्तव में किसी भी शाखा या शाखा के मुकाबले कोई सुंदर या अधिक उपयोगी नहीं है, तत्काल-चालान समारोह (और गैर-जेएस प्रोग्रामर, या अनियंत्रित जेएस प्रोग्रामर स्वयं को अपना कोड बनाए रखने की कोशिश कर रहे हैं)।
इन टुकड़ों के लिए तकनीकी शब्द _conditional expression_ है, जो सशर्त ऑपरेटर_ '?:' का उपयोग करते हैं। चूंकि यह ऑपरेटर तीन ऑपरेंड लेता है, इसे टर्नरी ऑपरेटर कहा जाता है। –
2 गुना तेजी से http://jsperf.com/speed-test-for-conditions –