thecreep: step = step || 0;

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

  1. 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

    --
    kostenlose JavaScript Spiele: Snake, MineSweeper oder Sudoku
  2. Was bedeutet das genau?

    Und das ginge in dem Fall sogar noch kürzer (mit der gleichen Bedeutung):

    step |= 0;

    Struppi.

    1. @@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'

      --
      Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
      1. 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.

        1. @@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'

          --
          Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
          1. 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.

      2. 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

        --
        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
  3. @@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'

    --
    Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)