Mögliches Duplikat:
Wie lege ich einen Standardwert für einen Parameter für eine Javascript-Funktion fest
in PHP:
function func($a = 10, $b = 20){
// if func() is called with no arguments $a will be 10 and $ b will be 20
}
Wie können Sie dies in JavaScript tun?
Ich erhalte eine Fehlermeldung, wenn ich versuche, Werte in Funktionsargumenten zuzuweisen
fehlt) nach formalen Parametern
In Javascript können Sie eine Funktion (auch wenn sie Parameter hat) ohne Parameter aufrufen.
So können Sie Standardwerte wie folgt hinzufügen:
function func(a, b){
if (typeof(a)==='undefined') a = 10;
if (typeof(b)==='undefined') b = 20;
//your code
}
und dann können Sie es wie func();
aufrufen, um Standardparameter zu verwenden.
Hier ist ein 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);
ab ES2015:
Ab ES6/ES2015 haben wir Standardparameter in der Sprachspezifikation. So können wir einfach etwas tun, wie
function A(a, b = 4, c = 5) {
}
oder kombiniert mit ES2015 destructuring ,
function B({c} = {c: 2}, [d, e] = [3, 4]) {
}
Für eine detaillierte Erklärung
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/default_parameters
Standardfunktionsparameter ermöglichen die Initialisierung von Formalparametern mit Standardwerten, wenn kein Wert oder undefiniert ist ist bestanden.
Vor ES2015:
Wenn Sie mit Werten umgehen möchten, die [~ # ~] nicht [~ # ~] Zahlen, Zeichenfolgen, Boolesche Werte, NaN
oder null
können Sie einfach verwenden
(Für Objekte, Arrays und Funktionen, die Sie niemals senden möchten, können Sie null
verwenden.)
param || DEFAULT_VALUE
zum Beispiel,
function X(a) {
a = a || function() {};
}
Obwohl dies einfach aussieht und irgendwie funktioniert, ist dies einschränkend und kann ein Anti-Muster sein, weil ||
bearbeitet alle falschen Werte (""
, null
, NaN
, false
, 0
) also - was es dieser Methode unmöglich macht, einem Parameter den als Argument übergebenen falschen Wert zuzuweisen.
Um also nur undefined
- Werte explizit zu behandeln, wäre der bevorzugte Ansatz:
function C(a, b) {
a = typeof a === 'undefined' ? DEFAULT_VALUE_A : a;
b = typeof b === 'undefined' ? DEFAULT_VALUE_B : b;
}
Sie müssen überprüfen, ob das Argument undefiniert ist:
function func(a, b) {
if (a === undefined) a = "default value";
if (b === undefined) b = "default value";
}
Beachten Sie auch, dass diese Frage beantwortetvor .
Ich habe es in JavaScript noch nie so gesehen. Wenn Sie eine Funktion mit optionalen Parametern wünschen, denen Standardwerte zugewiesen werden, wenn die Parameter weggelassen werden, gehen Sie folgendermaßen vor:
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);
}
in Kurzschrift
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);
}
Sie können keine Standardwerte für Funktionsparameter hinzufügen. Aber Sie können dies tun:
function tester(paramA, paramB){
if (typeof paramA == "undefined"){
paramA = defaultValue;
}
if (typeof paramB == "undefined"){
paramB = defaultValue;
}
}