JavaScript में किसी लॉजिक को शर्त के आधार पर चलाने का एक आम तरीका if स्टेटमेंट है।
इसमें if कीवर्ड, गोल ब्रैकेट में लिखी एक शर्त, और घुंघराले ब्रैकेट में लिखा एक कोड ब्लॉक होता है।
कोड ब्लॉक तभी चलता है जब शर्त true होती है।
if (condition) {
// code that is executed if "condition" is true
}
इसे अकेले इस्तेमाल किया जा सकता है, या else कीवर्ड के साथ मिलाकर।
if (condition) {
// code that is executed if "condition" is true
} else {
// code that is executed otherwise
}
if स्टेटमेंटelse स्टेटमेंट में एक और शर्त नेस्ट करने के लिए आप else if इस्तेमाल कर सकते हैं।
ध्यान दीजिए कि JavaScript में elseif नाम का कोई कीवर्ड नहीं होता।
इसके बजाय else लिखिए और उसके बाद एक और if स्टेटमेंट।
if (condition1) {
// code that is executed if "condition1" is true
} else if (condition2) {
// code that is executed if "condition2" is true
// but "condition1" was false
} else {
// code that is executed otherwise
}
सैद्धांतिक रूप से आप जितनी चाहें उतनी अतिरिक्त शर्तें नेस्ट कर सकते हैं।
लेकिन ऐसे मामलों में व्यवहार में आप इसके बजाय switch स्टेटमेंट इस्तेमाल करेंगे।
if (condition1) {
// ...
} else if (condition2) {
// ...
} else if (condition3) {
// ...
} else if (condition4) {
// ...
} else {
// ...
}
जटिल शर्तें बनाते समय अनावश्यक ब्रैकेट से बचने के लिए ऑपरेटर प्राथमिकता तालिका देखिए।
if (num >= 0 && num < 1) {
// ...
}
// The inner brackets are obsolete because relational operators
// have higher precedence than logical operators.
<!-- prettier-ignore-start -->
if ((num >= 0) && (num < 1)) {
// ...
}
<!-- prettier-ignore-end -->
साथ ही, कोड को ज़्यादा पढ़ने योग्य बनाने के लिए अतिरिक्त वेरिएबलो इस्तेमाल करने पर भी विचार कीजिए।
const isPositive = num >= 0;
const isSmall = num < 1;
if (isPositive && isSmall) {
// ...
}
JavaScript में शर्त का डेटा टाइप बूलियन होना ज़रूरी नहीं है।
if स्टेटमेंट जैसे बूलियन कॉन्टेक्स्ट में अगर बूलियन के अलावा कोई और टाइप दिया जाए, तो JavaScript उस वैल्यू को अपने आप बूलियन में बदल देता है।
कौन-सी वैल्यू truthy और कौन-सी falsy होती है, इसकी जानकारी के लिए टाइप कन्वर्ज़न कॉन्सेप्ट देखिए।
const num = 4;
if (num) {
// this code block will be executed because 4 is truthy
}
अगर आप if या else के कोड ब्लॉक में सिर्फ़ एक स्टेटमेंट चलाना चाहते हैं, तो JavaScript में घुंघराले ब्रैकेट छोड़ना मुमकिन है।
if (condition) doSomething();
// or
if (condition)
doSomething();
उदाहरण के लिए, किसी एरर की जाँच करते समय कभी-कभी ऐसा किया जाता है। लेकिन सामान्य तौर पर इसकी सलाह नहीं दी जाती, क्योंकि जब आप उसी शर्त पर निर्भर एक दूसरा स्टेटमेंट जोड़ते हैं, तो ब्रैकेट दोबारा लगाना भूल जाना आसान है।
फंक्शन लिखते समय एक आम पैटर्न है कि else ब्लॉक छोड़ दिया जाए और उसके बजाय if ब्लॉक में जल्दी return कर दिया जाए।
कई मामलों में इससे नेस्टिंग कम होती है और कोड ज़्यादा पढ़ने योग्य और समझने में आसान बन जाता है।
function checkNumber(num) {
let message = '';
if (num === 0) {
message = 'You passed 0, please provide another number.';
} else {
message = 'Thanks for passing such a nice number.';
}
return message;
}
// Can also be written as ...
function checkNumber(num) {
if (num === 0) {
return 'You passed 0, please provide another number.';
}
return 'Thanks for passing such a nice number.';
}