333 votes

Comment écrire une instruction IF en ligne en JavaScript ?

Comment puis-je utiliser une ligne if en JavaScript ? Existe-t-il une instruction en ligne else la déclaration aussi ?

Quelque chose comme ça :

var a = 2;
var b = 3;

if(a < b) {
    // do something
}

13 votes

Où est le jQuery ici ? Et je ne comprends pas vraiment la question de toute façon.

0 votes

La partie jquery pourrait ressembler à ceci $(document).ready(function(){ var a = 2 ; var b = 3 ; if(a < b) { // faire quelque chose }. }) ;

0 votes

C'est aussi une question de knockoutjs

739voto

MattW Points 3267

Vous n'avez pas nécessairement besoin de jQuery. JavaScript seul fera l'affaire.

var a = 2;
var b = 3;    
var c = ((a < b) ? 'minor' : 'major');

El c La variable sera minor si la valeur est true y major si la valeur est false .


C'est ce qu'on appelle un opérateur conditionnel (ternaire).

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Conditional_Operator

66 votes

Il illustre l'utilisation d'un IF en ligne, qui répond EXACTEMENT à la question.

28 votes

Il est à noter que toutes les parenthèses dans ce cas sont facultatives. Ce sont souvent les préférences personnelles ou le style de codage qui déterminent leur utilisation.

0 votes

@WillKlein vous dites que toutes les parenthèses sont facultatives, pourtant quand je fais ceci comme ()? : au lieu de (()? :) j'obtiens des résultats différents. Je ne le sais que parce que j'ai essayé de le faire comme en PHP.

52voto

Mahmoud Gamal Points 46598

Il existe un opérateur ternaire, comme celui-ci :

var c = (a < b) ? "a is less than b"  : "a is not less than b";

5 votes

Il n'est pas nécessaire de l'affecter à quoi que ce soit. Les éléments de droite peuvent simplement être des appels de fonction.

7 votes

Ils n'ont même pas besoin d'être des appels de fonction... 0 < 1 : 5 : 120; est une déclaration parfaitement valable. Un peu inutile à moins d'être payé à la ligne, cependant.

0 votes

Ok, @jfriend00, minitech, Merci pour les conseils.

49voto

Vohuman Points 79122

Pour l'écriture if en ligne, le code qu'il contient ne doit être qu'une seule déclaration :

if ( a < b ) // code to be executed without curly braces;

35voto

Onimusha Points 1117

En anglais simple, la syntaxe expliquée :

if(condition){
    do_something_if_condition_is_met;
}
else{
    do_something_else_if_condition_is_not_met;
}

On peut l'écrire comme suit :

condition ? do_something_if_condition_is_met : do_something_else_if_condition_is_not_met;

6 votes

Est-il possible de faire cela sans l'instruction "else" ? ie condition ? true

0 votes

@ScottBeeson Bien sûr. Cela dépend aussi de l'usage que vous faites de la condition. true false y "" devraient tous pouvoir ignorer la partie else.

0 votes

Así que 2 == 2 ? doSomething() serait la même chose que if (2 == 2) doSomething() ?

22voto

gAMBOOKa Points 3111
<div id="ABLAHALAHOO">8008</div>
<div id="WABOOLAWADO">1110</div>

parseInt( $( '#ABLAHALAHOO' ).text()) > parseInt( $( '#WABOOLAWADO ).text()) ? alert( 'Eat potato' ) : alert( 'You starve' );

49 votes

Je ne sais même pas ce que je viens de lire, mais je ris assez fort.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X