चूंकि अन्य उत्तरों ने बताया कि यह वास्तव में यह समझाए बिना कि यह कैसे काम करता है:
जब switch
निष्पादित होता है, तो यह पहले मिलान case
कथन को ढूंढता है और फिर स्विच के बाद कोड की प्रत्येक पंक्ति को तब तक निष्पादित करता है जब तक कि यह या तो एक break
स्टेटमेंट या switch
( return
संपूर्ण स्टेटमेंट को छोड़ने के लिए एक स्टेटमेंट) को हिट न कर दे । जब आप जानबूझकर इसे छोड़ देते हैं, break
तो अगले के तहत कोड case
भी निष्पादित हो जाता है जिसे फ़ॉल-थ्रू कहा जाता है । तो ओपी की आवश्यकता के लिए:
switch (pageid) {
case "listing-page":
case "home-page":
alert("hello");
break;
case "details-page":
alert("goodbye");
break;
}
break
बयानों को शामिल करना भूल जाना एक सामान्य आम कोडिंग गलती है और पहली बात यह है कि आपको अपनी switch
अपेक्षा के अनुरूप काम नहीं करना चाहिए । इस कारण से कुछ लोग इस बात को स्पष्ट करने के लिए "के माध्यम से" कहने के लिए एक टिप्पणी डालना पसंद करते हैं कि जब उद्देश्य पर ब्रेक स्टेटमेंट को छोड़ दिया गया हो। मैं निम्नलिखित उदाहरण में ऐसा करता हूं क्योंकि यह थोड़ा अधिक जटिल है और दिखाता है कि कुछ मामलों में गिरने से पहले कोड को निष्पादित करने के लिए कोड कैसे शामिल हो सकते हैं:
switch (someVar) {
case 1:
someFunction();
alert("It was 1");
// fall through
case 2:
alert("The 2 case");
// fall through
case 3:
// fall through
case 4:
// fall through
case 5:
alert("The 5 case");
// fall through
case 6:
alert("The 6 case");
break;
case 7:
alert("Something else");
break;
case 8:
// fall through
default:
alert("The end");
break;
}
आप (वैकल्पिक रूप से) एक default
मामले को भी शामिल कर सकते हैं , जिसे निष्पादित किया जाएगा यदि कोई अन्य मामले मेल नहीं खाते हैं - यदि आप एक default
और कोई मामले शामिल नहीं करते हैं तो कुछ भी नहीं होता है। आप (वैकल्पिक रूप से) डिफ़ॉल्ट मामले के माध्यम से गिर सकते हैं।
इसलिए मेरे दूसरे उदाहरण में अगर someVar
1 है तो यह कॉल करेगा someFunction()
और फिर आपको चार अलर्ट दिखाई देंगे क्योंकि यह कई मामलों से गुजरता है जिनमें से कुछ के तहत अलर्ट होता है। है someVar
3, 4 या 5 आप दो अलर्ट देखना चाहते है। यदि someVar
7 है, तो आप "कुछ और" देखेंगे और यदि यह 8 या कोई अन्य मूल्य है, तो आप "द एंड" देखेंगे।