Comment écrire une instruction if else sans 'else' en Javascript
Je ne peux pas utiliser else
dans mon script; Comment puis-je implémenter une déclaration if else
sans utiliser else
?
j'essaie de redimensionner un div:
function hideTable(){
var table = document.getElementById('PDemo');
if(table.style.width == "50%") table.style.width = "150px";
if(table.style.width == "150px") table.style.width = "50%";
}
ce script ne fonctionne pas car dès que la première instruction if
est exécutée, la condition pour la seconde instruction if
devient vraie, de sorte que l'exécution aussi, donc rien ne change.
P. S .. Ce n'est pas un devoir. Logiciel J'utilise seulement permet des déclarations d'une ligne.
6 réponses
si vous ne pouvez pas utiliser un else
(et qui est fou ), utilisez un switch
.
switch (table.style.width) {
case '50%':
...
break;
case '150px':
...
break;
}
L'opérateur ternaire:
condition ? execTrue() : execFalse();
cela équivaut à:
if (condition) {
execTrue();
}
else {
execFalse();
}
vous can écrivez un if/else en 1 ligne, ne appuyez simplement pas sur enter...
if (condition) { execTrue(); } else { execFalse(); }
en outre, vous pouvez écrire n'importe quelle déclaration de complexité arbitraire sur une ligne:
if(condition1) { exec1(); } else if(condition2) { exec2(); } else { execFalse() }
EDIT: je dois poser la question: wtf genre d'horrible logiciel ne vous permet d'écrire énoncés d'une ligne? Est-ce une forme de torture? Cela semble tout à fait misérable
EDIT 2: Si vous rencontrez le problème où la seconde si l'exécution d'une instruction ainsi, vous voulez imposer l'exclusion mutuelle, c'est à dire, à l'aide de else if
au lieu de if
sur chaque conditionnelle
- tjw
sauvegardez la valeur dans une variable différente.
function hideTable(){
var table = document.getElementById('PDemo');
var width = table.style.width;
if(width == "50%") table.style.width = "150px";
if(width == "150px") table.style.width = "50%";
}
if(/*condition a*/){/*statements a*/}else if(/*condition b*/){/*statements b*/}else{/*statements c/*}
une seule ligne.
avec une boucle while pour le bien de l'unicité.
while (!resized){
if(width == "50%") {table.style.width = "150px";resized=true;break};
if(width == "150px") table.style.width = "50%";resized=true;break};
resized=true;
}
Quel est le logiciel que vous utilisez?
avec & & opérateur sont appelés opérateur de court-circuit. Il retournera la valeur du second opérande basée sur la valeur du premier opérande.
par exemple: (explication: si 'profile' permission existe dans permArray alors charger le profil de l'utilisateur)
isPermitted(permArray,'profile') && loadProfile();
l'opérateur && est également utile pour vérifier les objets nuls avant d'accéder à leurs attributs. Exemple...
var name = person && person.getName();