2012-02-10 10 views
12

मैं इसका उपयोग करने की कोशिश कर रहा हूं और यह काम नहीं कर रहा है। मुझे लगता है कि यह सिर्फ एक विकल्प नहीं है, लेकिन पुष्टि करना चाहते हैं। क्या यह मान्य है?यदि मैं कथन में किसी अन्य इनलाइन जावास्क्रिप्ट में छोड़ सकता हूं?

(if_it_is) ? thats_cool(); 
+0

नहीं, यह वैकल्पिक नहीं है। इसके बजाय एक बाइनरी ऑपरेटर का उपयोग करें (&&) जब तक कि 'thats_cool()' एक मान देता है जो 'सत्य' का मूल्यांकन करता है। –

+0

नहीं। इसे ':' और उसके बाद कुछ मूल्य होना चाहिए। अगर आप चाहते हैं, तो आप सिर्फ 'do_nothing()' नामक एक फ़ंक्शन बना सकते हैं ... अच्छा, कुछ भी नहीं करता है। – Edwin

+1

उपयोगकर्ता 1048 9 67, इसे 'अगर() {} 'कहा जाता है। – Dykam

उत्तर

23

आप && वहाँ का उपयोग कर सकते हैं:

if_it_is && thats_cool(); 

यह मूल रूप से के बराबर है:

if (your_expression){ 
    thats_cool(); 
} 
+0

अच्छा। आप या तो के साथ शून्य सहवास कर सकते हैं। var variable2 = variable1 || 'CoalesceVal'; – Jason

+0

यह चालाक है लेकिन यह मेरे लिए बहुत सहज नहीं लगता है। यह अच्छी तरह से पढ़ा नहीं है। एक प्रश्न चिह्न, मुझे मिलता है। वह नहीं। – evan

+0

@ user1048967: अन्य भाषाओं से आने वाले लोग इसे कठिन पाते हैं, लेकिन यह वास्तव में जावास्क्रिप्ट की सुंदरता और विविधता है जिसे आपको सीखने की आवश्यकता है। सबसे पहले मुझे हर किसी के लिए अजीब लगता है जैसे मैं खुद उलझन में था लेकिन अब इसे प्रभावी ढंग से उपयोग कर रहा हूं। – Sarfraz

1

आप त्रिगुट ऑपरेटर का उपयोग कि पूरा नहीं कर सकते, लेकिन आप उपयोग कर सकते हैं आप जो चाहते हैं उसे करने के लिए && की शॉर्ट-सर्किट प्रकृति।

(if_it_is) && thats_cool(); 
0

नहीं, आप नहीं कर सकते। ?: एक टर्नरी ऑपरेटर है और इसके सभी तीन ऑपरेशंस होना चाहिए।

1

नहीं, आप नहीं कर सकते। यह "इनलाइन अगर स्टेटमेंट" नहीं है, तो यह टर्नरी ऑपरेटर है, और यह है ... अच्छी तरह से ... ternary।

(if_it_is) ? thats_cool() : null; 

जब से तुम आपरेशन के रिटर्न मान में रुचि होने की नहीं है, तो आप सिर्फ लिख सकते हैं:

if (if_it_is) thats_cool(); 

हालांकि। यह एक टर्नरी का उपयोग करने की तुलना में बेहतर शैली भी होगी।

0

आप तीसरे घटक को याद करते हैं।

(if_it_is) ? thats_cool() : not_too_cool(); 

पूरी भावना है:

condition ? do_something_if_condition_is_true : do_something_if_condition_is_false; 
4

नहीं, यह वैध नहीं है ऐसा ही कुछ किया जाना चाहिए।

सशर्त ऑपरेटर फॉर्म x ? y : z लेता है। तीसरा ऑपरेंड else की तरह if में नहीं है, यह हमेशा वहां होना चाहिए।

1

जो आप उपयोग करने का प्रयास कर रहे हैं वह Ternary Operator है। आप इसका दूसरा हिस्सा गायब हैं।

आप की तरह कुछ कर सकता है:

(if_it_is) ? thats_cool() : function(){}; 

या

(if_it_is) ? thats_cool() : null; 

या, के रूप में दूसरों का सुझाव दिया है, आप त्रिगुट बच सकते हैं यदि आप के बारे में किसी और परवाह नहीं है।

if_it_is && thats_cool(); 

जावास्क्रिप्ट में, साथ ही साथ अधिकांश भाषाओं में, ये तार्किक जांच बाएं से दाएं चरणबद्ध होती हैं। तो यह पहले देखेंगे कि if_it_is'trusy' value (true, 1 है, '', et cetera के अलावा एक स्ट्रिंग)। यदि वह पास नहीं होता है तो यह शेष बयान नहीं करता है। यदि यह पास हो जाता है तो यह तर्क में अगली जांच के रूप में thats_cool निष्पादित करेगा।

इसे किसी कथन के अंदर भाग के रूप में सोचें। अगर के बिना। तो यह

if (if_it_is && thats_cool()) { } 
संबंधित मुद्दे