Standardwerte


Wenn es um die Übergabe von Argumenten an Javascript-Funktionen geht, ist ja manchmal wünschenswert, Standardwerte vorzubelegen – falls mal nichts übergeben wird, obwohl die Funktion lt. Parameter-Liste an genau dieser oder/und jenen Stelle etwas erwartet…

Wenn man viel mit PHP hantiert, verfällt man sehr schnell auf diese Idee:

function f ( x = 1, y = 2, z = 3 ) {
    alert (x + ' | ' + y + ' | ' + z);
}
f();
f('A','B','C');

Das funktioniert auch – solange man auf Chrome oder Firefox (ab v15) entwickelt. Der Internet Explorer bemängelt allerdings Scriptfehler…
Meldung: ‘)’ erwartet

Aber auch Safari und andere Browser bocken. Bleibt also nur folgendes:

function f ( x, y, z ) {
    // ausführlich
    if ( typeof ( x ) === 'undefined' ) {
        x = 1;      
    }      

    // Kurzform      
    if ( typeof y === 'undefined' ) y = 2; 

    // ternärer Operator      
    z = ( typeof z !== 'undefined' ) ? z : 3;      

    alert (x + ' | ' + y + ' | ' + z);
}
f();
f('A','B','C');

Wenn man nun nicht gerade Werte a la false, null, undefined, 0 oder “” setzen will, kann man es auch ganz einfach handhaben:

function f ( x, y, z ) {   
    x = x || 1;     
    y = y || 2;     
    z = z || 3; 
    alert (x + ' | ' + y + ' | ' + z);
}
f();
f('A','B','C');

Die Kommentarfunktion ist geschlossen.