Je sais que dans PHP 5.3 au lieu d'utiliser cette syntaxe d'opérateur ternaire redondant:
startingNum = startingNum ? startingNum : 1
... nous pouvons utiliser une syntaxe abrégée pour nos opérateurs ternaires, le cas échéant:
startingNum = startingNum ?: 1
Et je connais l'opérateur ternaire en javascript:
startingNum = startingNum ? startingNum : 1
... mais y a-t-il un raccourci?
Merci les gars!
var startingNumber = startingNumber || 1;
Quelque chose comme ce que vous cherchez, où il est par défaut si non défini?
var foo = bar || 1; // 1
var bar = 2;
foo = bar || 1; // 2
À propos, cela fonctionne pour beaucoup de scénarios, y compris les objets:
var foo = bar || {}; // secure an object is assigned when bar is absent
||
renverra la première valeur de vérité rencontrée, et peut donc être utilisé comme opérateur de fusion, similaire au ??
de C #
startingNum = startingNum || 1;
Oui il y a:
var startingNum = startingNum || 1;
En général, expr1 || expr2
fonctionne de la manière suivante (comme indiqué par la documentation ):
Renvoie
expr1
s'il peut être converti entrue
; sinon, retourneexpr2
. Ainsi, lorsqu'il est utilisé avec les valeursBoolean
,||
renvoietrue
si l'un des opérandes esttrue
; si les deux sontfalse
, retournefalse
.
var startingNum = startingNum || 1;
Dans ce cas, vous pouvez utiliser l'opérateur OR.
startingNum = startingNum || 1
Si vous avez une condition avec null, comme
startingNum = startingNum ? startingNum : null
vous pouvez utiliser '&&'
startingNum = startingNum && startingNum
Les réponses ci-dessus sont correctes. En JavaScript, la déclaration suivante:
startingNum = startingNum ? otherNum : 1
peut être exprimé comme
startingNum = otherNum || 1
Un autre scénario non couvert ici est si vous voulez que la valeur retourne false si elle ne correspond Le raccourci JavaScript pour cela est:
startingNum = startingNum ? otherNum : 0
Mais cela peut être exprimé par
startingNum = startingNum && otherNum
Je voulais juste couvrir un autre scénario au cas où d'autres chercheraient une réponse plus généralisée.
Pour faire un ternaire comme:
boolean_condition ? true_result : false_result
en javascript, vous pouvez faire:
(boolean_condition && true_result ) || false_result;
Exemple:
(true && 'green') || 'red';
=> "green"
(false && 'green') || 'red';
=> "red"