Fehlwerte für Parameter in JavaScript
- Lesehinweis
- Die Inhalte dieser Lektion werden in den nächsten Lektionen nicht sofort wieder benötigt, sie sind aber zum Verständnis der Bedeutung von Funktionen in JavaScript hilfreich und passen an diese Stelle des Kurses. Falls ein Leser sich aber derzeit noch nicht für die Inhalte dieser Lektion interessiert, kann er sie auch überspringen und später bei Bedarf auf sie zurückkommen.
Es ist auch möglich, einem Parameter einen Wert zu geben, der dann verwendet wird, wenn das zugehörige Argument fehlt. Da dieser Wert verwendet wird, wenn der Argumentwert fehlt, nennt man ihn auch Fehlwert.
Um einen Fehlwert für einen Parameter festzulegen, schreibt man in der eingeklammerten Parameterliste hinter den Namen des Parameters ein Gleichheitszeichen (lexikalische Einheit) und einen Ausdruck, dessen Wert dann als Fehlwert verwendet wird.
- Auswertung
(( x = 10 )=> x )()
10
- Auswertung
(( x = 10 )=> x )( 4 )
4
- Auswertung
( ( x = 10 )=> 1 + x )( 2 )
3
- Auswertung
( ( x = 10 )=> 1 + x )()
11
Funktionen ohne ausdrückliche Fehlwerte
Wird kein Fehlwert auf diese Weise angegeben, so wird »undefined« als Fehlwert verwendet.
- Auswertung
( x => x )()
undefined
- Auswertung
( x => 1 + x )()
NaN
Die neue, erweiterte Syntax von Funktionsausdrücken
- Ein Funktionsausdruck
Ausdruck .------------------------------------------------------.
| .----------------------------. |
.-. | .------------. | .-. .----------. v V .-. .--. .----------.
---.--->( ( )---'--->| Bezeichner |---'--->( = )--->| Ausdruck |---'---'--->( ) )ooooooo>( => )--->| Ausdruck |--->
| '-' '------------' '-' '----------' '-' ^ '--' '----------'
| .------------. o
'--------------------------------->| Bezeichner |ooooooooooooooooooooooooooooooooo
'------------'
Fehlwerte bei Funktionen mit mehreren Parametern
Auch bei mehreren Parameter kann ein Fehlwert wieder explizit (ausdrücklich) festgelegt werden.
- Auswertung
( ( x, y = 10 )=> x + y )( 10 )
20
- Auswertung
( ( x, y = 10 )=> x + y )( 10, 2 )
12
Die Übergabe von »undefined«
Falls »undefined« als Argument übergeben wird, so wird gegebenenfals für den entsprechenden Parameter der festgelegte Fehlwert verwendet.
- Auswertung
( ( x, y = 10 )=> x + y )( 10, undefined )
20
- Auswertung
( ( x = 1, y )=> x + y )( undefined, 2 )
3
Die Auswertung des Ausdrucks für den Fehlwert
Ein Fehlwert kann der Wert eines beliebigen Ausdrucks sein. Der Ausdruck wird ausgewertet, wenn das zugehörige Argument fehlt oder den Wert »undefined« hat.
- Auswertung
( ( x = console.log( "Argument fehlt!" ))=> x + 2 )()
Argument fehlt!
NaN
- Auswertung
( ( x = console.log( "Argument fehlt!" ))=> x + 2 )( 4 )
6
Die Länge von Funktionen mit Fehlwerten
Wurde für einen Parameter mit einem Gleichheitszeichen ausdrücklich ein Fehlwert festgelegt, so wird dieser bei der Ermittlung der Länge nicht mitgezählt.
- Auswertung
( ( x, y = 4 )=> x + y ).length
1
- Auswertung
( ( x = 2, y = 4 )=> x + y ).length
0
Die Länge gibt also an, wie viele Argumente sinnvollerweise mindestens angegeben werden müssen.
Übungsfragen
Welche Werte haben die folgenden Ausdrücke?
? Übungsfragen
- Ausdruck
( ( x, y = 8 )=> x + y )( 2, 1 )
- Ausdruck
( ( y, x = 8 )=> x + y ).length
- Ausdruck
( ( o, v = 8 )=> v + v )( 2 )
- Ausdruck
( ( y, x = 8 )=> x + y )( 2, 1 )