Maison  >  Article  >  interface Web  >  Diverses techniques d'utilisation des techniques ternaires JavaScript Operator_javascript

Diverses techniques d'utilisation des techniques ternaires JavaScript Operator_javascript

WBOY
WBOYoriginal
2016-05-16 16:03:421346parcourir

Je trouve que lorsque j'écris trop de code, je remplace inconsciemment if else par ternaire. Cela rend simplement le code plus concis et incisif. Bien sûr, certaines personnes disent que l'utilisation de ternaire peut vous faire atteindre un point culminant. J'ai également ressenti cela lorsque j'écrivais js récemment et j'ai rassemblé quelques conseils à partager.

Big Bird, veuillez sauter le paragraphe suivant, Big Bird peut vous aider à le corriger ^__^

====Ligne populaire====

Expression (expr1) ? (expr2) : (expr3)

La valeur est expr2 lorsque expr1 est évaluée à VRAI, et la valeur est expr3 lorsque expr1 est évaluée à FAUX.

============

Utilisation courante

Quand vous constatez que vous utilisez souvent if else

Copier le code Le code est le suivant :

if(Merci, frère Chun || Merci, empereur de l'examen){
N'échouez pas ;
}autre{
Porte suspendue ;
>

Alors la représentation du ternaire est
Copier le code Le code est le suivant :

Adorer frère Chun || Adorer l'empereur de l'examen ? N'échouez pas à l'examen : Menmenhang

C'est très cool de trouver beaucoup de code perspicace.

Il y a souvent de tels jugements if else dans la vie quotidienne, surtout lorsqu'il y a de nombreuses imbrications. Il est plus harmonieux d'utiliser le ternaire, ce qui peut rendre votre code plus rafraîchissant et avoir une structure claire.

Utilisation légèrement plus intelligente
Grâce à des changements constants, de nombreux usages du ternaire peuvent être dérivés. Le code jquery suivant

Copier le code Le code est le suivant :

flag ? $('body').addClass('hover') : $('body').removeClass('hover') ;

Encore plus pervers.
Copier le code Le code est le suivant :

$('.item')[ flag ? 'addClass' : 'removeClass']('hover')

Le code ci-dessus semble déroutant. Car lorsque flag = true, le code devient le code suivant :
Copier le code Le code est le suivant :

$('.item')['addClass']('hover')

Cette façon d'écrire équivaut à.
Copier le code Le code est le suivant :

$('.item').addClass('hover')

Mise à niveau à nouveau

Vous pouvez appeler les fonctions que vous souhaitez selon vos besoins pour gérer plus de choses.

Copier le code Le code est le suivant :

fonction a(){
faire quelque chose
>
fonction b(){
faire quelque chose
>

drapeau ? a() : b();

Puis le corps complet du professeur

Il existe donc un tel cas, deux boutons, un pour le comportement avant et un pour le comportement arrière. Les fonctions de fonctionnement sont presque les mêmes.

Copier le code Le code est le suivant :

var action_turn = fonction(e, type){
        var self = $(e).closest('li');
        var target = self[type === 'prev' ? 'prev' : 'next']();
          target.addClass('has-img');
          self.removeClass('has-img')
>

var btn_next = $('#item-photo-panel a.next')
btn_next.click(function(){
        action_turn(this, 'next');
         return false ;
});
var btn_prev = $('#item-photo-panel a.prev')
btn_prev.click(function(){
        action_turn(this, 'prev');
         return false ;
});


Choses à éviter
Copier le code Le code est le suivant :

alerte( true ? 'true' : false ? 't' : 'f' )

Ce que je veux dire, c'est essayer d'éviter le ternaire imbriqué comme ci-dessus, car en js les instructions sont de droite à gauche, et le code ci-dessus est équivalent à
Copier le code Le code est le suivant :

alert( true ? 'true' : ( false ? 't' : 'f' ) )

Par exemple, en PHP, le résultat est complètement différent lors de l'imbrication de trois éléments, celui de gauche est prioritaire.
Copier le code Le code est le suivant :

echo (( true ? 'true' : false ) ? 't' : 'f' ) //php

conseil:
De plus, j'ai trouvé que le ternaire en php a une telle invite

Remarque : Notez que l'opérateur ternaire est une instruction, donc son évaluation n'est pas une variable, mais le résultat de l'instruction. Ceci est important si vous souhaitez renvoyer une variable par référence. L'instruction return $var == 42 ? $a : $b; dans une fonction qui renvoie par référence ne fonctionnera pas, et une future version de PHP émettra un avertissement à ce sujet.

Cependant, après des tests, j'ai découvert que l'approche ci-dessus peut fonctionner en javascript. C'est probablement parce que js n'est pas aussi rigoureux que BT par rapport à php.

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