Maison  >  Article  >  interface Web  >  Que sont les opérateurs ternaires en JavaScript ?

Que sont les opérateurs ternaires en JavaScript ?

青灯夜游
青灯夜游original
2021-04-01 17:31:113298parcourir

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.

Que sont les opérateurs ternaires en JavaScript ?

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 : &#39;&#39;
  }

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn