Maison > Article > interface Web > Que sont les opérateurs ternaires en JavaScript ?
Javascript n'a qu'un seul opérateur ternaire "? ... :", qui peut être utilisé pour des structures de sélection simples. La syntaxe de base est "Expression booléenne ? phrase1 : phrase2" ; is Lorsque vrai, la phrase1 est exécutée, sinon la phrase2 est exécutée.
L'environnement d'exploitation de ce tutoriel : système Windows 7, ECMAScript version 5, ordinateur Dell G3.
opérateur ternaire javascript
Lorsque l'opérateur ternaire en javascript est utilisé pour le jugement, la syntaxe de base est : expression ? sentence1 : sentence2
Lorsque la valeur de expression
est vraie, exécutez sentence1
, sinon exécutez sentence2
, veuillez voir le code
var b = 1, c = 1 a = 2; a >= 2 ? b++ : b--; b // 2 a < 2 ? c++ : c--; c // 0
À partir du code ci-dessus, nous penserons temporairement à trois L'opérateur est équivalent à if + else (discuté en détail ci-dessous)
if(expression){ sentence1; } else { sentence2; }
Quand expression
est vrai, c'est-à-dire que expression
n'est pas undefined
, NaN
, 0
, null
Une fois exécuté, sentence1
est exécuté, sinon sentence2
est exécuté.
Puisque cette fonction est la même que si, pourquoi l'utiliser ? Tout d'abord, lorsque la logique est jugée plusieurs fois, la logique de l'opérateur ternaire est plus concise :
expression1 ? sentence1 : expression2 ? sentence2 : expression3 ? sentence3 : ...
Tant que le jugement d'une expressionN est vrai, alors la phraseN sera exécutée immédiatement, et. les jugements ultérieurs ne seront plus exécutés. Et si on écrit if-else
if(expression1){ sentence1; } else if(expression2){ sentence2; } else if(expression3){ sentence3; } ...
, ça semble fatigant d'écrire la logique comme ça, donc dans les codes sources jquery et zepto, on verra beaucoup d'applications de l'opérateur ternaire.
Devoir
Un autre scénario d'application classique est l'affectation, var param = expression ? value1 : value2
, je crois que vous utilisez souvent ce
var b, c = 1; var a = b ? 2 : 1; a // 1 var a = c > 0 ? 2 : 1 a // 2
Négocions
Un jour, j'ai écrit un tel code
function xx(){ var a = 1, b = 3; a < b ? return false : '' }
Il a en fait signalé une erreur. Pourquoi l'erreur a été signalée, nous y regarderons de plus près ! à ce qui précède Jugements multiples
expression1 ? sentence1 : expression2 ? sentence2 : expression3 ? sentence3 : ...
Tant qu'une expressionN est vraie, elle sautera immédiatement. Quelle en est la raison ? Nous pouvons deviner que c'est parce que l'opérateur ternaire renvoie la phrase N, donc le jugement saute immédiatement. L'utilisation de l'affectation est la même. La raison pour laquelle une erreur est signalée est qu'écrire comme
if(expression){ return (return 2); }
signalera certainement une erreur. Donc, si nous avons des questions sur l'explication ci-dessus, nous pouvons utiliser un code comme celui-ci pour prouver :
var a = 1, b = 2; var c = b > 1 ? a++ : 0; c // 1
Pourquoi c vaut 1, car n++ ajoute 1 après avoir exécuté l'expression If return a++
, retournez d'abord plus 1, donc c ici est égal à 1
Pour plus de connaissances sur la programmation, veuillez visiter : Vidéo de programmation ! !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!