tj: Warum "return"?

Hallo ihr,

als Programmieranfänger habe ich drei Fragen.

Warum steht manchmal am Ende einer Funktion return (return result; z.b.)?

Was ist denn der Unterschied zwischen Event Handlern und Event Listenern?

Gibt es irgendwo eine Übersicht über alle/die wichtigsten APIs (Google, Facebook etc)?

Vielen Dank für eure Hilfe. Der Flattr ist unterwegs.
Gruß tj

  1. Hallo ihr,

    als Programmieranfänger habe ich drei Fragen.

    Warum steht manchmal am Ende einer Funktion return (return result; z.b.)?

    return weist die Rückgabe einer Funktion an.

    function foo(bar, baz) {  
      return qux;  
    }
    

    bar und baz sind hierbei die Argumente (also das was "rein kommt") und qux der rückgabewert (das kommt am Ende raus)

    Beispiel

    function summe(Summand1, Summand2) {  
      return Summand1 + Summand2;  
    }  
      
      
    alert(summe(15,8));
    

    Was ist denn der Unterschied zwischen Event Handlern und Event Listenern?

    Es ist ein begrifflicher Unterschied, es ist dasselbe.

    Mitels addEventListener() fügst du Eventhandler (oder eben Listener) hinzu. Einer Unterscheidung wäre mir nicht bekannt.

    Gibt es irgendwo eine Übersicht über alle/die wichtigsten APIs (Google, Facebook etc)?

    Wichtige APIs wozu?

  2. Hi,

    Warum steht manchmal am Ende einer Funktion return (return result; z.b.)?

    Um einen Wert zurück zu geben.

    Was ist denn der Unterschied zwischen Event Handlern und Event Listenern?

    Der Listener „lauscht“, ob der Event auftritt. Der Handler (be)handelt ihn.

    Gibt es irgendwo eine Übersicht über alle/die wichtigsten APIs (Google, Facebook etc)?

    Wow - noch keine Ahnung, was return in einer Funktion macht, aber schon mit APIs rumspielen wollen ...?
    Das lass' mal lieber - und beschäftige dich erst mal noch ein bisschen mit den elementaren Grundlagen.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. Was ist denn der Unterschied zwischen Event Handlern und Event Listenern?

      Der Listener „lauscht“, ob der Event auftritt. Der Handler (be)handelt ihn.

      Das ist in JavaScript ziemlich austauschbar - mit addEventListener fügt man einen "Listener" hinzu, der das Event auch gleich behandelt.

      Ich wüsste nicht, wie man das trennen sollte - einen Listener hinzufügen der nur lauscht aber beim Eintreten des Events nichts macht wäre absurd :)

  3. Hallo,

    Warum steht manchmal am Ende einer Funktion return (return result; z.b.)?

    das Wort "return" wird hier im doppelten Wortsinn verwendet.

    Es bedeutet ja einerseits "zurückkehren". Das heißt, da wo return notiert wird, kehrt der Programmfluss aus der Funktion zum aufrufenden Code zurück, die Funktion wird an der Stelle beendet.

    Aber return bedeutet ja auch "etwas zurückgeben". Und genau das passiert, wenn als Argument des return-Statements noch ein Ausdruck notiert wird. Der Wert dieses Ausdrucks wird dann als Ergebnis der Funktion an den aufrufenden Code zurückgegeben.

    Ciao,
     Martin

    --
    Ein Ehepaar beim Sex. Sie fragt ihn: "Woran denkst du gerade?" - Er antwortet: "Kennste sowieso nicht."
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Vielen Dank, ihr drei.
      Dabei habt ihr mir sehr geholfen.
      Ist man bei den Argumenten eigentlich beschränkt oder kann man das so nutzen?
      function (a,b,c,...,n)
      {
      return a+b+c...
      }

      Und bzgl. APIs: Das ist reines Interesse.

      Wie habt ihr euch JS bzw. andere Programmiersprachen beigebracht? Welche IDE nutzt ihr so?

      Gruß tj

      Hallo,

      Warum steht manchmal am Ende einer Funktion return (return result; z.b.)?

      das Wort "return" wird hier im doppelten Wortsinn verwendet.

      Es bedeutet ja einerseits "zurückkehren". Das heißt, da wo return notiert wird, kehrt der Programmfluss aus der Funktion zum aufrufenden Code zurück, die Funktion wird an der Stelle beendet.

      Aber return bedeutet ja auch "etwas zurückgeben". Und genau das passiert, wenn als Argument des return-Statements noch ein Ausdruck notiert wird. Der Wert dieses Ausdrucks wird dann als Ergebnis der Funktion an den aufrufenden Code zurückgegeben.

      Ciao,
      Martin

      1. Hallo,

        Ist man bei den Argumenten eigentlich beschränkt oder kann man das so nutzen?
        function (a,b,c,...,n)
        {
        return a+b+c...
        }

        das kannst du natürlich so schreiben - aber so gibst du trotzdem nur *einen* Wert zurück, nämlich a+b+c. Der Begriff der Funktion erlaubt nur die Rückgabe *eines* Wertes.

        Wie habt ihr euch JS bzw. andere Programmiersprachen beigebracht?

        BASIC:               Als Hobby im Teenageralter
        Assembler (Prinzip): Als Hobby während der Schulzeit, später im Studium gefestigt
        C:                   Im Rahmen des Informatikstudiums
        Javascript, PHP:     Autodidaktisch, unterstützt durch Bücher und Online-Tutorials

        Welche IDE nutzt ihr so?

        Für C und Assembler:    Code::Blocks
        Für Javascript und PHP: keine, reiner Texteditor

        Hallo,
        [...]
        Ciao,
        Martin

        Und nächstes Mal bitte kein TOFU. Danke.

        Ciao,
         Martin

        --
        Politik ist die Kunst, die Menschen so zu bescheißen, dass sie auch noch glauben, sie hätten das selbst so gewollt.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Der Begriff der Funktion erlaubt nur die Rückgabe *eines* Wertes.

          Selbstverständlich ist mit "ein Wert" hier nicht ein Skalar gemeint. Es lassen sich auch Datentypen zurückgeben, die mehrere Werte beinhalten - z.B. Arrays oder Objekte.

      2. Ist man bei den Argumenten eigentlich beschränkt oder kann man das so nutzen?
        function (a,b,c,...,n)
        {
        return a+b+c...
        }

        So direkt kannst du das nicht schreiben. Einen Parameter für den Rest gibt es erst in der kommenden JavaScript-Version.

        Gegenwärtig kannst du aber über die http://de.selfhtml.org/javascript/objekte/function.htm#arguments@title=arguments-Liste auf sämtliche Parameter zugreifen.

        var result = 0;
        for (var i = 0, l = arguments.length; i < l; i++) {
           result += arguments[i];
        }
        return result;

        Wie habt ihr euch JS bzw. andere Programmiersprachen beigebracht?

        Autodidaktisch, wie alle.
        Durch Lesen von Fachartikeln, Blog und Büchern.
        Durch Lesen von JavaScript-Code.

        Welche IDE nutzt ihr so?

        Für JavaScript keine, nur einen Texteditor.

        Mathias

    2. Hier frage ich mich immer: ist dann ein return optional? Der erste fall ist doch unnötig,weil die funktion doch automatisch vorbei ist?

      » Hallo,

      Warum steht manchmal am Ende einer Funktion return (return result; z.b.)?

      das Wort "return" wird hier im doppelten Wortsinn verwendet.

      Es bedeutet ja einerseits "zurückkehren". Das heißt, da wo return notiert wird, kehrt der Programmfluss aus der Funktion zum aufrufenden Code zurück, die Funktion wird an der Stelle beendet.

      Aber return bedeutet ja auch "etwas zurückgeben". Und genau das passiert, wenn als Argument des return-Statements noch ein Ausdruck notiert wird. Der Wert dieses Ausdrucks wird dann als Ergebnis der Funktion an den aufrufenden Code zurückgegeben.

      Ciao,
      Martin

      1. Hallo,

        Hier frage ich mich immer: ist dann ein return optional? Der erste fall ist doch unnötig,weil die funktion doch automatisch vorbei ist?

        Jain. Wenn eine Funktion keinen Wert zurückgeben soll, braucht man return nicht unbedingt, denn die Verarbeitung ist ja meistens irgendwann automatisch zu Ende, stimmt.

        Aber man will ja nicht zwingend immer erst am Ende der Funktion zurückkehren. Oft ergibt sich irgendwo mittendin im Code eine Situation, bei der man zurückkkehren möchte, evtl. sogar ganz am Anfang:

        function beispiel(nichtNegativeZahl) {  
          
          if(nichtNegativeZahl < 0) { return; }  
          
          /* Mach was mit der Zahl */  
          
          if(spezielleBedingung) { return; }  
          
          /* Mach weiter mit der Zahl */  
        }
        

        Gruß, Don P