step = step || 0;
thecreep
- javascript
Hallo,
in dem Fader - Framework steht folgende Funktion (das für mich uninteressante rausgekürzt)
function Fade(step)
{
//...
step = step || 0;
//..
}
Was bedeutet das genau?
MfG
thecreep
Hallo thecreep,
Was bedeutet das genau?
Wenn die Variable step nicht definiert ist, weil sie bsp. nicht übergeben wurde an die Funktion, wird die mit 0 (Null) initialisiert.
Mit freundlichem Gruß
Micha
Was bedeutet das genau?
Und das ginge in dem Fall sogar noch kürzer (mit der gleichen Bedeutung):
step |= 0;
Struppi.
@@Struppi:
nuqneH
Was bedeutet das genau?
Und das ginge in dem Fall sogar noch kürzer
step |= 0;
Nein.
'step |= 0;
' ist die Abkürzung für 'step = step | 0;
', was etwas ganz anderes ist als 'step = step || 0;
'.
'||=
' gibt einen Syntaxfehler; diese abgekürzte Schreibweise gibt es wohl nicht.
Qapla'
Und das ginge in dem Fall sogar noch kürzer
step |= 0;
Nein.
'
step |= 0;
' ist die Abkürzung für 'step = step | 0;
', was etwas ganz anderes ist als 'step = step || 0;
'.
Im Prinzip ja, im Ergebnis ist es egal
wert | 0 ist immer gleich wert.
Struppi.
@@Struppi:
nuqneH
Im Prinzip ja, im Ergebnis ist es egal
wert | 0 ist immer gleich wert.
Im Prinzip nein, hier aber ja, wenn es sich bei den Belegungen der Variblen/des Funktionsparameters 'wert' ausschließlich um numerische Werte handelt.
'"foo" | 0
' ergibt 0;
'"foo" || 0
' hingegen ergibt "foo", was erwünscht ist.
Qapla'
Im Prinzip ja, im Ergebnis ist es egal
wert | 0 ist immer gleich wert.Im Prinzip nein, hier aber ja, wenn es sich bei den Belegungen der Variblen/des Funktionsparameters 'wert' ausschließlich um numerische Werte handelt.
Wenn ein Vorgabewert von 0 verwendet wird, gehe ich davon aus.
Aber bei Fließkommazahlen versagt meine Kurzschreibweise auch. Also vergessen wir sie am besten wieder ;-)
Struppi.
Moin Moin!
'
||=
' gibt einen Syntaxfehler; diese abgekürzte Schreibweise gibt es wohl nicht.
Nicht in Javascript, was mich gelegentlich mal nervt. Denn Perl kennt diese angenehme Kurzschreibweise durchaus, wie auch diverse andere Zuweisungsoperatoren, weit über die hinaus, die C/C++ kennt. Und seit 5.10 kennt Perl auch endlich $var//=$default
, was $var=defined($var) ? $var : $default
oder $var=$default unless defined $var
entspricht.
Alexander
@@thecreep:
nuqneH
step = step || 0;
Der ||
-Operator ist nicht einfach – wie in [http://de.selfhtml.org/javascript/sprache/operatoren.htm#logisch@title=SELFHTML] angegeben – ein logischer Operator. Er liefert i.A. nicht true oder false; sondern a || b
liefert a, wenn a als true gewertet wird, sonst b.
Bsp.: 2 || 3
ergibt 2
0 || 3
ergibt 3
"foo" || "bar"
ergibt "foo"
"" || "bar"
ergibt "bar"
step || 0
ergibt also, was Micha sagte.
Qapla'