Duplicate possible:
Comment attribuer à une fonction javascript une valeur par défaut pour un paramètre
en PHP:
function func($a = 10, $b = 20){
// if func() is called with no arguments $a will be 10 and $ b will be 20
}
Comment pouvez-vous faire cela en JavaScript?
Je reçois une erreur si j'essaie d'assigner des valeurs aux arguments de la fonction
manquant) après les paramètres formels
En javascript, vous pouvez appeler une fonction (même si elle a des paramètres) sans paramètre.
Donc, vous pouvez ajouter des valeurs par défaut comme ceci:
function func(a, b){
if (typeof(a)==='undefined') a = 10;
if (typeof(b)==='undefined') b = 20;
//your code
}
et vous pouvez l’appeler comme func();
pour utiliser les paramètres par défaut.
Voici un test:
function func(a, b){
if (typeof(a)==='undefined') a = 10;
if (typeof(b)==='undefined') b = 20;
alert("A: "+a+"\nB: "+b);
}
//testing
func();
func(80);
func(100,200);
ES2015 et suivantes:
À partir de ES6/ES2015, nous avons des paramètres par défaut dans la spécification de langue. Nous pouvons donc faire quelque chose de simple, comme
function A(a, b = 4, c = 5) {
}
ou combinés avec déstructuration ES2015 ,
function B({c} = {c: 2}, [d, e] = [3, 4]) {
}
Pour une explication détaillée,
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/default_parameters
Les paramètres de fonction par défaut permettent d’initialiser les paramètres formels avec les valeurs par défaut si aucune valeur ou undefined est passé.
Pre ES2015:
Si vous allez gérer des valeurs qui sont ET NON, Numbers, Strings, Boolean, NaN
ou null
you peut simplement utiliser
(Ainsi, vous pouvez utiliser pour les objets, les tableaux et les fonctions que vous prévoyez de ne jamais envoyer null
)
param || DEFAULT_VALUE
par exemple,
function X(a) {
a = a || function() {};
}
Bien que cela semble simple et fonctionne un peu, ceci est restrictif et peut être un anti-motif parce que ||
fonctionne sur toutes les valeurs fausses (""
, null
, NaN
, false
, 0
) aussi - ce qui rend impossible à cette méthode d'attribuer à param la valeur de falsy transmise comme argument.
Ainsi, afin de gérer uniquement les valeurs undefined
explicitement, l’approche privilégiée serait,
function C(a, b) {
a = typeof a === 'undefined' ? DEFAULT_VALUE_A : a;
b = typeof b === 'undefined' ? DEFAULT_VALUE_B : b;
}
Je n'ai jamais vu cela se faire de cette façon en JavaScript. Si vous souhaitez une fonction avec des paramètres facultatifs auxquels sont attribuées des valeurs par défaut si les paramètres sont omis, voici une façon de le faire:
function(a, b) {
if (typeof a == "undefined") {
a = 10;
}
if (typeof b == "undefined") {
a = 20;
}
alert("a: " + a + " b: " + b);
}
function func(a, b)
{
if (typeof a == 'undefined')
a = 10;
if (typeof b == 'undefined')
b = 20;
// do what you want ... for example
alert(a + ',' + b);
}
en sténographie
function func(a, b)
{
a = (typeof a == 'undefined')?10:a;
b = (typeof b == 'undefined')?20:b;
// do what you want ... for example
alert(a + ',' + b);
}
Vous ne pouvez pas ajouter de valeurs par défaut pour les paramètres de fonction. Mais vous pouvez faire ceci:
function tester(paramA, paramB){
if (typeof paramA == "undefined"){
paramA = defaultValue;
}
if (typeof paramB == "undefined"){
paramB = defaultValue;
}
}