2012-01-29 17 views
14

लौटा रहा है तो क्या जावास्क्रिप्ट शॉर्टंड और यदि किसी फ़ंक्शन से बाहर निकल सकता है? यदि ऐसा है तो यह कैसे काम करेगा।जावास्क्रिप्ट शॉर्टैंड अगर-और और

उदाहरण के लिए। मैं इस है:

if(boolean){ 
return; 
} 

और मैं इस रूप में यह लिखने के लिए करना चाहते हैं:

(value)? return; 

क्रोम शिकायत है कि वापसी अप्रत्याशित है। क्या ऐसा कुछ लिखने के लिए वैसे भी है कि यह मान्य है?

+2

यह और अधिक के लिए एक शॉर्टेंड नहीं है।यह एक पूरी तरह से अलग निर्माण है, और एक जो इस कार्य के लिए उपयुक्त नहीं है। –

+3

वास्तव में दुखी है कि यह काम नहीं करता है: 'कुछ वैल && वापसी;'। कंसोल कहते हैं 'अप्रत्याशित टोकन रिटर्न'। –

उत्तर

24

नहीं, आप तब तक ऐसा नहीं कर सकते जब तक कि आप कोई मूल्य वापस न करें। उदाहरण के लिए अपने कार्य एक मूल्य के आप लिख सकता लौटना पड़ा हो तो:

return boolean ? 'foo' : 'bar'; 

लेकिन आप सशर्त ऑपरेटर का उपयोग शून्य वापस लौट कर समारोह का निष्पादन नहीं रोक सकता।

1

आप एक ternary operator

जो इस है क्या करना चाहते हैं:

(bool) ? ifTrue : ifFalse; 

कृपया ध्यान दें: यदि आप एक त्रिगुट ऑपरेटर के बाकी हिस्से को छोड़ नहीं कर सकते।

http://en.wikipedia.org/wiki/Ternary_operation

+0

मुझे नहीं लगता कि आप समझते हैं कि कोड के "लंबे" संस्करण वास्तव में * क्या किया गया था ... – Shog9

+2

नहीं, मुझे यह मिल गया। लेकिन ऐसा प्रतीत होता है कि वह एक टर्नरी ऑपरेटर का उपयोग करने का प्रयास कर रहा था, और अगर वह कथन के अपने मूल "लंबे" के साथ इसे समझने के तरीके में व्यवहार करने के लिए मजबूर करने की कोशिश कर रहा था। यदि वह बस एक कथन सैन्स-घुंघराले ब्रेसिज़ का उपयोग करना चाहता था, तो वह ऐसा कह सकता था। * शग * – Kristian

9

आप भले ही इसके निष्पादन परीक्षण का मूल्यांकन करता है कि क्या सही या गलत है, तो आप उपयोग कर सकते हैं की में इस बिंदु पर समारोह से लौटने का इरादा है,

return (value) ? 1 : 2; 

लेकिन अगर आप केवल जब परीक्षण एक परीक्षण का मूल्यांकन करता है (उदाहरण के लिए, पैरामीटर अमान्य होने पर निष्पादन को रोकने के लिए एक सैनिटी-चेक के रूप में) वापस लौटना चाहते हैं, तो सबसे कम आप इसे बना सकते हैं:

if (boolean) return; 
+2

केवल दूसरा वास्तव में प्रश्न में पहले उदाहरण के समान व्यवहार करता है। हालांकि यह निश्चित रूप से छोटा है - ब्रेसिज़ और न्यूलाइन के साथ कितनी गड़बड़ी के बारे में अच्छा उदाहरण पैर में खुद को शूट करने की इच्छा पैदा कर सकता है! – Shog9

+0

अच्छा संपादन @ शोग 9, मुझे हमेशा शब्दों में कमी है। –

0

सशर्त "टर्नरी ऑपरेटर" (condition ? expression to evaluate when true : expression to evaluate when false) अक्सर साधारण सशर्त चर असाइनमेंट के लिए उपयोग किया जाता है।

अगर आप की जरूरत है:

if(x > 0) { 
    a = 10; 
}else{ 
    a = 30; 
} 

आप लिख सकते हैं:

a = (x>0)? 10 : 30; 

आप एक साधारण समारोह है, जो 3 मानकों (P1, P2, पी 3) लेता है जैसे कि यह के बारे में सोच सकते हैं, अगर p1 यह सच है कि यह पी 2 देता है और यदि पी 1 गलत है तो यह पी 3 लौटाता है।

(p1)? p2 : p3; 

और बस इस तरह के एक समारोह की तरह, वहाँ के लिए यह माता पिता समारोह पैदा करने के लिए शर्त के आधार पर वापसी करने के लिए कोई रास्ता नहीं है। यह इसलिए इसलिए/else के लिए एक शॉर्टेंड है।

3
if(boolean) return; 

सिंगल लाइन, पठनीय, पूरी तरह से मान्य;

संबंधित मुद्दे