J'aime Ruby's ||=
mécanisme. Si une variable n'existe pas ou est nil
, créez-la et définissez-la égale à quelque chose:
amount # is nil
amount ||= 0 # is 0
amount ||= 5 # is 0
Je dois faire quelque chose de similaire en JavaScript maintenant. Quelle est la convention ou la bonne façon de faire cela? Je sais ||=
n'est pas une syntaxe valide. Deux manières évidentes de le gérer sont:
window.myLib = window.myLib || {};
// or
if (!window.myLib)
window.myLib = {};
Les deux sont tout à fait corrects, mais si vous cherchez quelque chose qui fonctionne comme ||=
en Ruby. La première méthode qui est variable = variable || {}
est celui que vous recherchez :)
Vous pouvez utiliser l'opérateur logique OR ||
qui évalue son opérande droit si lVal
est une valeur de fausseté.
Les valeurs de fausseté incluent, par exemple, null, false, 0, "", undefined, NaN
x = x || 1
Si vous travaillez avec des objets, vous pouvez utiliser la déstructuration (depuis ES6) comme suit:
({ myLib: window.myLib = {} } = window);
... mais vous ne gagnez rien par rapport à la réponse acceptée, sauf confusion.