Détails
Définir une valeur de paramètre par défaut pour une fonction JavaScript
J'aimerais qu'une fonction JavaScript possède des arguments facultatifs pour lesquels je définis une valeur par défaut, qui sont utilisés si la valeur n'est pas définie (et ignorés si la valeur est passée). En Ruby, vous pouvez le faire comme suit :
def read_file(file, delete_after = false)
# code
end
Cela fonctionne-t-il en JavaScript ?
function read_file(file, delete_after = false) {
// Code
}
2271
3
Depuis [ES6/ES2015][1], les paramètres par défaut sont dans la spécification du langage.
fonctionne simplement.
Référence : Paramètres par défaut - MDN
Vous pouvez également [simuler des paramètres nommés par défaut via la déstructuration] (http://exploringjs.com/es6/ch_parameter-handling.html#sec_named-parameters) :
Pré ES2015,
Il y a beaucoup de façons, mais c'est ma méthode préférée - elle vous permet de passer tout ce que vous voulez, y compris false ou null. (
typeof null == "object"
)[1] : https://www.ecma-international.org/ecma-262/6.0/
Ceci assigne à
delete_after
la valeur dedelete_after
si ce n'est pas une valeur falsey sinon il assigne la chaîne"my default here"
. Pour plus de détails, consultez [l'étude de Doug Crockford sur le langage et regardez la section sur les opérateurs][1].Cette approche ne fonctionne pas si vous voulez passer une valeur falsey, c'est-à-dire
false
,null
,undefined
,0
ou""
. Si vous souhaitez que des valeurs falsifiantes soient transmises, vous devez utiliser la méthode décrite dans [la réponse de Tom Ritter][2].Lorsqu'on a affaire à un certain nombre de paramètres d'une fonction, il est souvent utile de permettre au consommateur de passer les arguments des paramètres dans un objet, puis de fusionner ces valeurs avec un objet contenant les valeurs par défaut de la fonction.
à utiliser
[1] : http://crockford.com/javascript/survey.html [2] : https://stackoverflow.com/questions/894860/how-do-i-make-a-default-value-for-a-parameter-to-a-javascript-function/894877#894877
Je trouve personnellement que quelque chose de simple comme ça est beaucoup plus concis et lisible.