जावास्क्रिप्ट में "पर्सिफ़" वाक्यविन्यास


जवाबों:


507

जावास्क्रिप्ट का फारस प्रारूप में है "और यदि", जैसे:

if (condition) {

} else if (other_condition) {

} else {

}

28
जब लोग इस तरह के सवाल पूछते हैं .. मुझे लगता है कि यह एक गलतफहमी है। के साथ ifऔर elseवास्तव में कोई जरूरत नहीं है elseif
एमपीएन

14
@ मर्क, मैं सहमत हूं ... लेकिन यह मुझे कभी-कभी गड़बड़ कर देता है क्योंकि मैं उन भाषाओं के लिए उपयोग किया जाता हूं जिनमें एक हनीफ है। मुझे पता है कि यह समान है, लेकिन मुझे आश्चर्य है कि इसे छोड़ने के लिए जावास्क्रिप्ट का क्या कारण है। मुझे खुशी है कि हालाँकि, उन्होंने एलिफ का उपयोग नहीं किया, क्योंकि यह गलत है :)
Jay K

16
@ जय: हाहा .. PHP है elseif, पर्ल है elsif(मुझे लगता है), और अजगर है elif.. कि मुझे पहली बार में गुस्सा आ गया, लेकिन ... मुझे लगता है कि यह एक तरह से प्यारा है। यह हालांकि पाइथन और पीएचपी में एक मामूली उद्देश्य की सेवा करता है, क्योंकि यह अन्यथा उनके बृहदान्त्र के सिंटैक्स के साथ काम नहीं करेगा।
मप्र ०

6
@ मार्क यह अधिक ब्रैकेटिंग की गलतफहमी दिखाता है। ब्रैकेट if/ elseब्लॉक के लिए आवश्यक नहीं हैं , लेकिन लोगों को उनका उपयोग करने के लिए प्रोत्साहित किया जाता है, इसलिए मैं समझ सकता हूं कि नए उपयोगकर्ता के लिए यह गलत क्यों लगता है।

46
@ मर्क यह दावा करने के लिए कि "गलत है" का उपयोग करने का कोई कारण नहीं है। यदि कथन "स्विच" का उपयोग करने के लिए समान हैं, तो यह अधिक विस्तृत तुलना के लिए अनुमति देगा। बेशक, स्विच केवल बहुत ही सरल तुलना के लिए अनुमति देता है। तो हाँ, निश्चित रूप से अन्य कारणों का उपयोग करने के लिए अच्छे कारण हैं।
जोलसेन

49

बस एक स्थान जोड़ें:

if (...) {

} else if (...) {

} else {

}

33

आप इस वाक्यविन्यास का उपयोग कर सकते हैं जो कार्यात्मक रूप से समतुल्य है:

switch (true) {
  case condition1:
     //e.g. if (condition1 === true)
     break;
  case condition2:
     //e.g. elseif (condition2 === true)
     break;
  default:
     //e.g. else
}

यह काम करता है क्योंकि प्रत्येक conditionका मूल्यांकन switchमूल्य के साथ तुलना करने से पहले किया जाता है, इसलिए पहला जो मूल्यांकन करता है trueवह मिलान करेगा और इसकी शाखा निष्पादित करेगा। इसके बाद की शाखाएँ निष्पादित नहीं होंगी, बशर्ते आप उपयोग करना याद रखेंbreak

ध्यान दें कि सख्त तुलना का उपयोग किया जाता है, इसलिए एक शाखा जिसका conditionकेवल "सत्य" होगा निष्पादित नहीं किया जाएगा। आप के लिए एक truthy मूल्य डाल सकता trueडबल निषेध के साथ: !!condition


यह कार्यात्मक रूप से AFAIK के बराबर नहीं है। आप शर्तों में जो डाल सकते हैं वह बहुत अधिक सीमित है, और switch (true)इसका कोई मतलब भी नहीं है।
zwol

2
मैं मानता हूं कि यह पहली बार में अजीब लग रहा है लेकिन यह समकक्ष है। स्थिति आपकी पसंद की कुछ भी हो सकती है (फ़ंक्शन कॉल या जो भी हो) और यदि यह मूल्यांकन करता है trueतो उस मामले को पूरा किया जाएगा - बिल्कुल पसंद है else if
तमलिन

5
ओह, मैं देख रहा हूं कि अब आप क्या कर रहे हैं। वह बहुत ही चालाक है। (मैंने यह बताते हुए एक पैराग्राफ जोड़ा कि यह कैसे काम करता है, ताकि मैं अपने
पतन को दूर कर सकूं

1
यह 1 से अधिक के साथ हालत सूचियों के लिए एक बहुत ही सरल, साफ और सुरुचिपूर्ण समाधान है "अगर हालत"
स्टीव गॉसेन्स

4
पूरी तरह से समतुल्य नहीं है यदि परिस्थितियाँ बूलियन्स को वापस नहीं करती हैं, उदाहरण के if([]) alert('a')लिए अलर्ट का उत्पादन करती है लेकिन switch(true){case []:alert('a')}नहीं। ऐसा इसलिए []है क्योंकि एक सत्य मान है, लेकिन इसके बराबर नहीं है true, जैसा कि @zwol ने इस संपादन में समझाया है ।
ओरिऑल

13

वास्तव में, तकनीकी रूप से जब ठीक से इंडेंट किया जाता है, तो यह होगा:

if (condition) {
    ...
} else {
    if (condition) {
        ...
    } else {
        ...
    }
}

कोई नहीं है else if , सख्ती से बोल रहा हूं।

(अपडेट: बेशक, जैसा कि बताया गया है, उपरोक्त अच्छी शैली नहीं माना जाता है।)


1
आप कर सकते हैं, और आपको यह लिखना चाहिए if (condition1) { ... } else if (condition2) { ... } else { ... }
zwol

4
संक्षेप में, जब else ifआप वास्तव में वैकल्पिक ब्लॉक का उपयोग कर रहे हैं {...}। मैं EMCAScript और MDN पर आधारित सन्दर्भ दे रहा था ..
skube

13
भाषा के औपचारिक व्याकरण के संदर्भ में, आप सही हैं, लेकिन आपका जवाब लोगों को गलत धारणा दे सकता है else { if ... }जो अच्छी शैली है।
zwol

1
ज्वॉल ने क्या कहा। वहाँ है जो आप (skube) का मतलब है .. और फिर वहाँ है जो आपने कहा था।
जेरार्ड ओनेल

6
if ( 100 < 500 ) {
   //any action
}
else if ( 100 > 500 ){
   //any another action
}

आराम से, अंतरिक्ष का उपयोग करें


2

सशर्त बयानों का उपयोग विभिन्न स्थितियों के आधार पर विभिन्न कार्यों को करने के लिए किया जाता है।

ifयदि निर्दिष्ट शर्त सत्य है, तो कोड का एक ब्लॉक निष्पादित करने के लिए उपयोग करें

उपयोग elseकोड की एक ब्लॉक को निष्पादित करने के लिए निर्दिष्ट करने के लिए , यदि एक ही स्थिति झूठी है

else ifपरीक्षण के लिए एक नई शर्त निर्दिष्ट करने के लिए उपयोग करें , यदि पहली स्थिति झूठी है


1
x = 10;
if(x > 100 ) console.log('over 100')
else if (x > 90 ) console.log('over 90')
else if (x > 50 ) console.log('over 50')
else if (x > 9 ) console.log('over 9')
else console.log('lower 9') 

0

आप elseऔर के बीच एक स्थान याद कर रहे हैंif

इसके else ifबजाय होना चाहिएelseif

if(condition)
{

} 
else if(condition)
{

}
else
{

}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.