Sind formale Parameter in JavaScript größer als tatsächliche Parameter?

PHPz
Freigeben: 2023-04-18 18:24:16
Original
726 Leute haben es durchsucht

In JavaScript sind Funktionsparameter ein sehr wichtiger Teil. Wenn eine Funktion aufgerufen wird, können Sie Argumente übergeben, um das Verhalten der Funktion zu ändern. Aber was passiert, wenn Ihre Funktionsparameter größer sind als die tatsächlichen Parameter? In diesem Artikel werden wir dieses Problem untersuchen und einige der Probleme ansprechen, die auftreten können.

Schauen wir uns zunächst ein einfaches Funktionsbeispiel an, das zwei Parameter benötigt:

function add(a, b) {
  return a + b;
}
Nach dem Login kopieren

In diesem Beispiel definieren wir eine Funktion namens „add“, die zwei Parameter a und b akzeptiert und deren Summe zurückgibt.

Wenn wir nun diese Funktion aufrufen und zwei Parameter wie unten gezeigt übergeben:

add(2, 4);
Nach dem Login kopieren
Nach dem Login kopieren

Dann erhalten wir ein Ergebnis von 6. Dies liegt daran, dass wir die Funktion „add“ aufgerufen und zwei Parameter übergeben haben, diese hinzugefügt wurden und das Ergebnis zurückgegeben wurde.

Aber was passiert, wenn wir diese Funktion aufrufen, aber nur einen Parameter übergeben?

add(2);
Nach dem Login kopieren

In diesem Fall wird dem Parameter „a“ der Wert 2 zugewiesen, aber „b“ wird kein Parameter übergeben. In diesem Fall ist der Wert von „b“ undefiniert und die Summe von „a“ und „b“ beträgt NaN. Dies liegt daran, dass in JavaScript das Hinzufügen eines beliebigen numerischen Werts zu undefiniert NaN zurückgibt.

Wenn wir nun die Funktion „add“ so umdefinieren, dass sie nur einen Parameter (d. h. a) hat, wie folgt:

function add(a) {
  return a + 2;
}
Nach dem Login kopieren

Dann versuchen Sie, sie erneut aufzurufen:

add(2, 4);
Nach dem Login kopieren
Nach dem Login kopieren

In diesem Fall ist der tatsächliche Parameter größer als der formale Parameter Das Problem besteht nicht. Selbst wenn wir zwei Parameter übergeben, akzeptiert die JavaScript-Engine nur den ersten Parameter.

In einigen Fällen kann die Funktionsdefinition jedoch größere Parameter enthalten, als Sie übergeben möchten. In diesem Fall fragen Sie sich möglicherweise, wie JavaScript mit dem Fall umgeht, dass der tatsächliche Parameter kleiner als der formale Parameter ist.

Wenn der tatsächliche Parameter kleiner als der formale Parameter ist, wird der nicht übergebene Parameter als undefiniert zugewiesen. Dies liegt daran, dass Funktionsparameter in JavaScript den Standardwert undefiniert haben. Wenn Sie nur einen Teil der Parameter übergeben, werden die nicht übergebenen Parameter automatisch als undefiniert zugewiesen. Zum Beispiel:

function add(a, b, c) {
  return a + b + c;
}
add(2);
Nach dem Login kopieren

In diesem Beispiel haben wir eine Funktion „add“ definiert, die drei Parameter akzeptiert, aber wir haben nur einen Parameter übergeben. b und c werden automatisch undefiniert zugewiesen und ihre Summe beträgt NaN.

In einigen Fällen möchten Sie jedoch möglicherweise wissen, wie Sie mit dem Fall umgehen, in dem der tatsächliche Parameter kleiner als der formale Parameter ist. JavaScript-Anfänger wissen vielleicht nicht, wie sie dieses Problem lösen können, aber es gibt einige Tricks, die Sie anwenden können. Hier sind einige davon:

1. Standardparameter verwenden:

In ES6 können Sie Standardparameter verwenden, um Standardwerte für Funktionsdefinitionen bereitzustellen. Standardparameter sind Attribute in Klammern, die beim Definieren einer Funktion hinzugefügt werden. Wenn die tatsächlichen Parameter kleiner als die formalen Parameter sind, verwenden die nicht übergebenen Parameter die vordefinierten Standardwerte. Zum Beispiel:

function add(a, b = 0, c = 0) {
  return a + b + c;
}
add(2);
Nach dem Login kopieren

In diesem Beispiel haben wir einen Standardwert von 0 für die Parameter b und c angegeben. Wenn wir also nur einen Parameter übergeben, ist der Rückgabewert 2.

2. Überprüfen Sie, ob die Parameter undefiniert sind:

Um NaN zu vermeiden, können Sie prüfen, ob alle Parameter im Funktionskörper undefiniert sind. Sie können sie dann nach Bedarf ausprobieren. Zum Beispiel:

function add(a, b, c) {
  if (a === undefined) a = 0;
  if (b === undefined) b = 0;
  if (c === undefined) c = 0;
  return a + b + c;
}
add(2);
Nach dem Login kopieren

Wenn wir in diesem Fall nur einen Parameter übergeben, weist die Funktion a automatisch den Wert 2 zu, während b und c den Wert 0 zugewiesen werden. Das zurückgegebene Ergebnis ist 2.

Fazit

Wenn also in der JavaScript-Umgebung die formalen Parameter größer als die tatsächlichen Parameter sind, werden die nicht übergebenen Parameter undefiniert zugewiesen. Wenn die tatsächlichen Parameter kleiner als die formalen Parameter sind, werden auch nicht übergebene Parameter undefiniert zugewiesen. Wenn Sie in diesen Fällen keine NaNs wünschen, sollten Sie die Verwendung von Standardparametern oder einen Trick in Betracht ziehen, der prüft, ob der Parameter undefiniert ist.

Das obige ist der detaillierte Inhalt vonSind formale Parameter in JavaScript größer als tatsächliche Parameter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage