“elseif” la sintassi di JavaScript

È corretto?

if(condition)
{

} 
elseif(condition)
{

}
else
{

}

 

7 Replies
  1. 484

    JavaScript elseif è in formato “else if”, ad esempio:

    if (condition) {
    
    } else if (other_condition) {
    
    } else {
    
    }
    • Quando le persone chiedono domande come questa.. penso mostra un malinteso. Con if e else c’è davvero alcun bisogno di elseif.
    • Sono d’accordo… ma mi scombina qualche volta, perché ho usato per le lingue che hanno un elseif. So che è identico, ma mi chiedo cosa javascript motivo per lasciarlo fuori. Io sono contento, però, che non usano elif, perché è semplicemente sbagliato 🙂
    • Haha.. PHP ha elseif, perl ha elsif (credo), e Python ha elif.. che tipo di mi ha infastidito, ma… credo che il tipo di cute. Ha una leggera scopo in Python e PHP, però, perché non lavorare con loro colon sintassi altrimenti.
    • Più mostra un equivoco di bracketing. Le parentesi non sono necessarie per if/else blocchi, ma le persone sono incoraggiate ad utilizzarli, così posso capire perché questo sembra non corretto per un nuovo utente.
    • Affermare che non c’è mai un motivo per usare “else if” non è corretto. Altra cosa, se le istruzioni sono simili per l’utilizzo di “switch”, tuttavia essa consentirà una più elaborata confronti. Interruttore, ovviamente, permette di semplici confronti solo. Quindi sì, c’è sicuramente buone ragioni per usare altro se.
    • Mi sono specificamente pensati elseif come una singola parola chiave. Ci sono molti usi per else if.
    • Nessuno avrebbe la progettazione di un linguaggio in cui si doveva scrivere if X { ... } else { if Y { ... } else { if Z { ... } else { ... } } } perché, seriamente, che schifo. (Beh, forse qualcosa da INTERCAL famiglia ci sarebbe andato.) Singola parola chiave elseif (è comunque di farro) tende ad andare avanti con la obbligatorie blocco di delimitatori su tutte le strutture di controllo, ma ho sentito Swift è che con un’eccezione speciale per else if. Per riassumere, c’è sempre qualche modo per fare una catena di altro-ifs, e il modo in cui è stato digitato è solo uno di quei fastidiosi piccole variazioni che devi memorizzare per ogni lingua.
    • Mark visualizza inesperienza con altre lingue e di design, alzando le sopracciglia in una domanda che sarebbe normale chiedere per persone con esperienza in molte lingue. Va bene per Hari chiedere di più a questo anche se, come in molte altre domande, avrebbe cercato con google prima. 🙂 In molte lingue, elseif serve (ed è implementato come una compatta istruzione switch/case. JS manca, e lo sostituisce con un ingombrante istruzione switch che rende nessuno felice.
    • L’aggiunta di spazio (o almeno non si elimina lo spazio) rende me felice. else if è vivo e vegeto in JavaScript, ed è identico a elseif in altre lingue. Extra parentesi non sono necessarie, ma qualunque sia il soffia i capelli indietro.
    • Essa aiuta anche a capire perché funziona. Se si lascia fuori il {}‘s per un if/else istruzione in javascript, il parser si applica questo alla prossima istruzione. Quindi: else if {...} è la stessa else { if {...} }.
    • In Python elif è prezioso soprattutto perché il else clausola di deve essere rientrata. L’uso ripetuto di else: if quindi spinge ciò che è essenzialmente la logica sequenziale verso destra.
    • wow 13 anni e appena imparato questo… sepolto in phps elseif

  2. 28

    Si potrebbe usare questa sintassi, che è funzionalmente equivalente:

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

    Questo funziona perché ogni condition è pienamente valutati prima del confronto con il switch valore, in modo che il primo che valuta true corrispondono e il suo ramo di esecuzione. Successivi rami non verranno eseguiti, a condizione che si ricordate di usare pausa.

    Nota che rigorosa confronto è usato, quindi un ramo di cui condition è semplicemente “truthy” sarà non essere eseguito. Si può lanciare un truthy valore true con doppia negazione: !!condition.

    • Questo non è funzionalmente equivalente, per quanto ne so. Che cosa si può mettere in condizioni molto più limitato, e switch (true) non ha nemmeno senso.
    • Ammetto sembra strano all’inizio, ma è equivalente. La condizione può essere di qualsiasi tipo (comprese le chiamate di funzione o quello che è) e se restituisce true poi che caso saranno soddisfatti – esattamente come else if.
    • Oh, vedo quello che stai facendo ora. Che dannatamente intelligente. (Ho aggiunto un paragrafo che spiega come funziona, in modo che io possa ritrarre il mio downvote.)
    • Questo è un molto semplice, pulito ed elegante soluzione per la condizione di liste con più di 1 “else if”
    • Non del tutto equivalenti se le condizioni non ritorno booleane, ad esempio, if([]) alert('a') produce l’avviso, ma switch(true){case []:alert('a')} non. Questo perché [] è un truthy valore ma non uguale a true, come @zwol spiegato in modifica.
    • E questa soluzione ha il vantaggio di essere ESlint amichevole.

  3. 12

    In realtà, tecnicamente quando indentato correttamente, sarebbe:

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

    Non c’è else if, strettamente parlando.

    (Update: ovviamente, come sottolineato, il sopra è non considerata buona.)

    • Si può, e si dovrebbe scrivere questo if (condition1) { ... } else if (condition2) { ... } else { ... }.
    • In sostanza quando si utilizza else if in realtà si sta omettendo il blocco opzionale {...}. Ero di riferimento basato su script emcascript e LETTURA..
    • In termini di grammatica formale della lingua, si sono corretti, ma la tua risposta potrebbe dare alla gente l’errata impressione che else { if ... } è buono stile.
    • Cosa zwol, ha detto. C’è quello che è (skube) ha fatto.. E poi c’è quello che hai detto.
  4. 2

    Istruzioni condizionali sono utilizzati per eseguire diverse azioni in base a diverse condizioni.

    Utilizzare if per specificare un blocco di codice da eseguire se la condizione specificata è vera

    Utilizzare else per specificare un blocco di codice che deve essere eseguito, se la stessa condizione è falsa

    Utilizzare else if per specificare una nuova condizione di prova, se la prima condizione è falsa

  5. 0

    Manca uno spazio tra else e if

    Dovrebbe essere else if invece di elseif

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

Lascia un commento