मैं कभी-कभी निम्नलिखित उदाहरण के समान कोड पर ठोकर खाता हूं (यह फ़ंक्शन वास्तव में इस प्रश्न के दायरे से बाहर क्या है):
function doSomething(value) {
if (check1(value)) {
return -1;
}
else if (check2(value)) {
return value;
}
else {
return false;
}
}
आप देख सकते हैं, if, else ifऔर elseबयानों के साथ संयोजन के रूप में उपयोग किया जाता है returnबयान। यह एक आकस्मिक पर्यवेक्षक के लिए काफी सहज लगता है, लेकिन मुझे लगता है कि यह (सॉफ्टवेयर डेवलपर के नजरिए से) else-s को ड्रॉप करने और इस तरह कोड को सरल बनाने के लिए अधिक सुरुचिपूर्ण होगा :
function doSomething(value) {
if (check1(value)) {
return -1;
}
if (check2(value)) {
return value;
}
return false;
}
यह समझ में आता है, जैसा कि एक returnबयान ( एक ही दायरे में) का पालन करने वाली हर चीज को कभी भी निष्पादित नहीं किया जाएगा, कोड को पहले उदाहरण के समान शब्दार्थ के बराबर बना देगा।
उपरोक्त में से कौन सा अच्छा कोडिंग अभ्यास अधिक फिट बैठता है? क्या कोड पठनीयता के संबंध में किसी भी विधि में कोई कमियां हैं?
संपादित करें: इस प्रश्न को संदर्भ के रूप में प्रदान किए जाने के साथ एक डुप्लिकेट सुझाव दिया गया है । मेरा मानना है कि मेरा प्रश्न एक अलग विषय पर है, जैसा कि मैं डुप्लिकेट बयानों से बचने के बारे में नहीं पूछ रहा हूं जैसा कि अन्य प्रश्न में प्रस्तुत किया गया है। दोनों प्रश्न कुछ अलग-अलग तरीकों से दोहराव को कम करने की कोशिश करते हैं।
-1एक संख्या है, falseएक बूलियन है, और valueयहां निर्दिष्ट नहीं है इसलिए यह किसी भी प्रकार की वस्तु हो सकती है।
valueवास्तव में एक पूर्णांक है। अगर यह कुछ भी हो सकता है तो यह और भी बुरा है।
elseएक कम मुद्दा है, बड़ी समस्या यह है कि आप स्पष्ट रूप से एक ही फ़ंक्शन से दो डेटा प्रकार वापस कर रहे हैं, जो फ़ंक्शन के एपीआई को अप्रत्याशित बनाता है।