Heim Web-Frontend Front-End-Fragen und Antworten Sind formale Parameter in JavaScript größer als tatsächliche Parameter?

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

Apr 18, 2023 pm 06:21 PM

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!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist Useffizität? Wie verwenden Sie es, um Nebenwirkungen auszuführen? Was ist Useffizität? Wie verwenden Sie es, um Nebenwirkungen auszuführen? Mar 19, 2025 pm 03:58 PM

In dem Artikel wird die Verwendung von UseEffect in React, einen Haken für die Verwaltung von Nebenwirkungen wie Datenabrufen und DOM -Manipulation in funktionellen Komponenten erläutert. Es erklärt die Verwendung, gemeinsame Nebenwirkungen und Reinigung, um Probleme wie Speicherlecks zu verhindern.

Erklären Sie das Konzept des faulen Ladens. Erklären Sie das Konzept des faulen Ladens. Mar 13, 2025 pm 07:47 PM

Lazy Ladeverzögerung des Ladens von Inhalten bis zur Bedarf, Verbesserung der Webleistung und Benutzererfahrung durch Reduzierung der anfänglichen Ladezeiten und des Serverlasts.

Wie funktioniert der React -Versöhnungsalgorithmus? Wie funktioniert der React -Versöhnungsalgorithmus? Mar 18, 2025 pm 01:58 PM

Der Artikel erläutert den Versöhnungsalgorithmus von React, der das DOM effizient aktualisiert, indem virtuelle DOM -Bäume verglichen werden. Es werden Leistungsvorteile, Optimierungstechniken und Auswirkungen auf die Benutzererfahrung erörtert.

Was sind Funktionen höherer Ordnung in JavaScript und wie können sie verwendet werden, um prägnanter und wiederverwendbarer Code zu schreiben? Was sind Funktionen höherer Ordnung in JavaScript und wie können sie verwendet werden, um prägnanter und wiederverwendbarer Code zu schreiben? Mar 18, 2025 pm 01:44 PM

Funktionen höherer Ordnung in JavaScript verbessern die Übersichtlichkeit, Wiederverwendbarkeit, Modularität und Leistung von Code durch Abstraktion, gemeinsame Muster und Optimierungstechniken.

Wie funktioniert das Currying in JavaScript und wie hoch sind ihre Vorteile? Wie funktioniert das Currying in JavaScript und wie hoch sind ihre Vorteile? Mar 18, 2025 pm 01:45 PM

In dem Artikel wird das Currying in JavaScript, einer Technik, die Multi-Argument-Funktionen in Einzelargument-Funktionssequenzen verwandelt. Es untersucht die Implementierung von Currying, Vorteile wie teilweise Anwendungen und praktische Verwendungen, Verbesserung des Code -Lesens

Was ist usecontext? Wie verwenden Sie es, um den Zustand zwischen Komponenten zu teilen? Was ist usecontext? Wie verwenden Sie es, um den Zustand zwischen Komponenten zu teilen? Mar 19, 2025 pm 03:59 PM

Der Artikel erläutert den Usecontext in React, was das staatliche Management durch Vermeidung von Prop -Bohrungen vereinfacht. Es wird von Vorteilen wie zentraler Staat und Leistungsverbesserungen durch reduzierte Neulehre erörtert.

Wie verhindern Sie das Standardverhalten bei Ereignishandlern? Wie verhindern Sie das Standardverhalten bei Ereignishandlern? Mar 19, 2025 pm 04:10 PM

In Artikeln werden das Standardverhalten bei Ereignishandlern mithilfe von PURDDEFAULT () -Methoden, seinen Vorteilen wie verbesserten Benutzererfahrungen und potenziellen Problemen wie Barrierefreiheitsproblemen verhindern.

Wie verbinden Sie React -Komponenten mit Connect () an den Redux -Store? Wie verbinden Sie React -Komponenten mit Connect () an den Redux -Store? Mar 21, 2025 pm 06:23 PM

In Artikel werden die Verbindungskomponenten an Redux Store mit Connect () verbinden, wobei MapStatetoprops, MapDispatchtoprops und Leistungsauswirkungen erläutert werden.

See all articles