Heim >Web-Frontend >js-Tutorial >Wie gehe ich mit optionalen Funktionsparametern in ES6 um: Typprüfung vs. ternärer Operator?

Wie gehe ich mit optionalen Funktionsparametern in ES6 um: Typprüfung vs. ternärer Operator?

DDD
DDDOriginal
2024-11-11 20:42:02815Durchsuche

How to Handle Optional Function Parameters in ES6: Type Checking vs. Ternary Operator?

ES6-Feature: Optionale Funktionsparameter

Der herkömmliche Ansatz für optionale Funktionsparameter in JavaScript beinhaltet eine logische ODER-Prüfung (||), dargestellt am Beispiel im folgenden Codeausschnitt:

function myFunc(requiredArg, optionalArg){
  optionalArg = optionalArg || 'defaultValue';

  // Do stuff
}

Obwohl diese Technik die traditionelle Methode war, weist sie bestimmte Einschränkungen auf. Wenn beispielsweise optionalArg übergeben wird, aber als falsch ausgewertet wird, wird der Standardwert nicht zugewiesen.

Alternative Ansätze

Um diese Einschränkung zu beheben, werden zwei alternative Ansätze vorgeschlagen:

1. Typprüfung:

if (typeof optionalArg === 'undefined') { optionalArg = 'default'; }

Bei diesem Ansatz wird überprüft, ob optionalArg undefiniert ist, und der Standardwert zugewiesen, wenn diese Bedingung erfüllt ist. Dadurch wird sichergestellt, dass der Standardwert nur dann festgelegt wird, wenn optionalArg fehlt oder wenn er explizit auf undefiniert festgelegt ist.

2. Ternärer Operator:

optionalArg = (typeof optionalArg === 'undefined') ? 'default' : optionalArg;

Der ternäre Operator bietet eine übersichtliche Alternative für die Handhabung optionaler Parameter. Der Ausdruck ergibt den Standardwert, wenn optionalArg undefiniert ist; Andernfalls behält es den ursprünglichen Wert von optionalArg bei.

Welche Auswahl?

Sowohl die Typprüfung als auch der ternäre Operatoransatz bieten effektive Lösungen für das Problem optionaler Parameter. Die Wahl zwischen ihnen hängt von den persönlichen Vorlieben und der Lesbarkeit des Codes ab. Die Syntax des ternären Operators ist kompakter, während der Ansatz der Typprüfung möglicherweise expliziter ist.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit optionalen Funktionsparametern in ES6 um: Typprüfung vs. ternärer Operator?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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