47 votes

Déclaration abrégée if/else Javascript

Je me demande s'il y a une façon plus courte d'écrire ceci:

 var x = 1;
if(y != undefined) x = y;

J'ai d'abord essayé x = y || 1 , mais cela n'a pas fonctionné. Quelle est la bonne façon de procéder ?

23voto

Une autre façon de l'écrire brièvement

 bePlanVar = !!((bePlanVar == false));

// is equivalent to

bePlanVar = (bePlanVar == false) ? true : false;

// and 

if (bePlanVar == false) {
    bePlanVar = true;
} else {
    bePlanVar = false;
}

4voto

haltabush Points 2914
y = (y != undefined) ? y : x;

Les parenthèses ne sont pas nécessaires, je les rajoute juste car je pense que c'est plus facile à lire de cette façon.

3voto

André Figueiredo Points 1476

L'autre moyen est d'utiliser le court-circuit :

x = (typeof y !== 'undefined') && y || 1

Même si je pense moi-même que le ternaire est plus lisible.

2voto

Nemesarial Points 11

Voici un moyen de le faire qui fonctionne, mais qui n'est peut-être pas vraiment la meilleure pratique pour aucune langue :

 var x,y;
x='something';
y=1;
undefined === y || (x = y);

alternativement

 undefined !== y && (x = y);

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