Comment puis-je utiliser une if
instruction inline en JavaScript? Existe-t-il également une else
déclaration en ligne ?
Quelque chose comme ça:
var a = 2;
var b = 3;
if(a < b) {
// do something
}
Comment puis-je utiliser une if
instruction inline en JavaScript? Existe-t-il également une else
déclaration en ligne ?
Quelque chose comme ça:
var a = 2;
var b = 3;
if(a < b) {
// do something
}
Réponses:
Vous n'avez pas nécessairement besoin de jQuery. Seul JavaScript fera cela.
La
c
variable seraminor
si la valeur esttrue
, etmajor
si la valeur estfalse
.C'est ce qu'on appelle un opérateur conditionnel (ternaire).
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Conditional_Operator
la source
if (a < b) c = 'major';
Pour écrire une
if
instruction en ligne, le code qu'il contient ne doit être qu'une seule instruction:la source
Il existe un opérateur ternaire, comme celui-ci:
la source
0 < 1 : 5 : 120;
est une déclaration parfaitement valable. Un peu inutile, sauf si vous êtes payé par ligne.if
déclaration ennuyeuse dans un tel cas rendra probablement votre code beaucoup plus facile à lire et à comprendre, et moins susceptible de rompre avec les modifications ultérieures.Vous pouvez également approximer un if / else en utilisant uniquement des opérateurs logiques.
Ce qui précède équivaut à peu près à dire:
Et bien sûr, à peu près la même chose que:
Je dis à peu près parce qu'il y a une différence avec cette approche, en ce que vous devez savoir que la valeur de
b
sera évaluée comme vraie, sinon vous obtiendrez toujoursc
. Fondamentalement, vous devez réaliser que la partie qui apparaîtraitif () { here }
fait maintenant partie de la condition que vous placezif ( here ) { }
.Ce qui précède est possible en raison du comportement JavaScripts de passer / renvoyer l'une des valeurs d'origine qui ont formé l'expression logique, laquelle dépend du type d'opérateur. Certains autres langages, comme PHP, conservent le résultat réel de l'opération, c'est-à-dire vrai ou faux, ce qui signifie que le résultat est toujours vrai ou faux; par exemple:
Un avantage principal, par rapport à une instruction if normale, est que les deux premières méthodes peuvent fonctionner du côté droit d'un argument, c'est-à-dire dans le cadre d'une affectation.
La seule façon d'y parvenir avec une instruction if standard serait de dupliquer l'assignation:
Vous pouvez vous demander pourquoi utiliser uniquement des opérateurs logiques au lieu de l' opérateur ternaire , pour des cas simples, vous ne le feriez probablement pas, sauf si vous vouliez vous en assurer
a
et que lesb
deux étaient vrais. Vous pouvez également obtenir des conditions complexes plus rationalisées avec les opérateurs logiques, qui peuvent devenir assez compliqués à l'aide d'opérations ternaires imbriquées ... là encore si vous voulez que votre code soit facilement lisible, ni vraiment intuitif.la source
En clair, la syntaxe expliquait:
Peut s'écrire comme:
la source
condition ? true
true
false
et""
devrait tous être bien pour ignorer la partie else.2 == 2 ? doSomething()
serait le même que celuiif (2 == 2) doSomething()
?: false
ou: ""
devrait être là car javascript s'y attend.la source
Si vous voulez juste un IF en ligne (sans ELSE), vous pouvez utiliser l'opérateur logique AND:
Si vous avez également besoin d'un ELSE, utilisez l'opération ternaire suggérée par les autres personnes.
la source
Vous pouvez faire ceci en JavaScript:
la source
Pour info, vous pouvez composer des opérateurs conditionnels
Si votre logique est suffisamment complexe, vous pouvez envisager d'utiliser un IIFE
Bien sûr, si vous prévoyez d'utiliser cette logique plus d'une fois, vous devez l'encapsuler dans une fonction pour garder les choses agréables et SECHES.
la source
J'ai souvent besoin d'exécuter plus de code par condition, en utilisant:
( , , )
plusieurs éléments de code peuvent exécuter:la source
Pour ajouter à cela, vous pouvez également utiliser inline if condition avec && et || les opérateurs. Comme ça
la source
La question n'est-elle pas essentiellement: puis-je écrire ce qui suit?
la réponse est oui, ce qui précède se traduira.
cependant, méfiez-vous de ce qui suit
assurez-vous de mettre du code ambigu entre accolades car ce qui précède lèvera une exception (et des permutations similaires produiront un comportement indésirable.)
la source
en ligne si:
conclusion véridique: déclarations exécutées lorsque l'hypothèse est vraie
conclusion de falsey: déclarations exécutées lorsque l'hypothèse est fausse
votre exemple:
la source