Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Functions mit optionalen Parametern

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

Functions mit optionalen Parametern

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
38 Beiträge 6 Kommentatoren 2.4k Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • OliverIOO OliverIO

    @ben1983 said in Functions mit optionalen Parametern:

    @oliverio ja. Die Fehlermeldung lautet, das nur ein Parameter deklariert wurde.

    dann probier das mal aus.
    gerade im iobroker skript adapter ausprobiert

    function abc() {
        console.log("ergebnis");
        console.log(arguments);
    
    }
    abc(1,2,3,4,5);
    
    18.4.2021, 23:32:57.296	[info ]: javascript.0 (12017) Stop script script.js.Test.Skript_1
    18.4.2021, 23:32:57.299	[info ]: javascript.0 (12017) Start javascript script.js.Test.Skript_1
    18.4.2021, 23:32:57.303	[info ]: javascript.0 (12017) script.js.Test.Skript_1: ergebnis
    18.4.2021, 23:32:57.304	[info ]: javascript.0 (12017) script.js.Test.Skript_1: {'0':1,'1':2,'2':3,'3':4,'4':5}
    18.4.2021, 23:32:57.304	[info ]: javascript.0 (12017) script.js.Test.Skript_1: registered 0 subscriptions and 0 schedules
    
    Ben1983B Offline
    Ben1983B Offline
    Ben1983
    schrieb am zuletzt editiert von Ben1983
    #17

    @oliverio Ah OK, man muss arguments in der function auch benutzen, sonst bekommt man beim Aufruf einen Fehler.
    Allerdings hat man dann immer noch den nachteil, dass man beim Aufruf keinen definierten Namen oder eine Beschreibung hat.
    Also bspw. arg[0] ist das, arg[1] ist das ....etc.

    Und wie zum Geier definiert man den Typ eines Parameters :-D das muss doch irgendwie in der Deklaration gehen, oder?
    Ich kenne es von anderen Sprachen so: function xy(string x, int y)

    Ps. wird bei deklarationen trotzdem das erste argument schon gezählt?
    Hier ein Beispiel:

    function xyz(a)
    {
        log(arguments[0]);
    }
    
    xyz(1,8,3,4);
    

    der log gibt 1 raus, also das was eigentlich in Parameter "a" steht.
    Das bedeutet die arguments zählen immer ab dem ersten Parameter und fangen nicht nach dem letzten deklarierten an?

    OliverIOO 1 Antwort Letzte Antwort
    0
    • Ben1983B Ben1983

      @oliverio Ah OK, man muss arguments in der function auch benutzen, sonst bekommt man beim Aufruf einen Fehler.
      Allerdings hat man dann immer noch den nachteil, dass man beim Aufruf keinen definierten Namen oder eine Beschreibung hat.
      Also bspw. arg[0] ist das, arg[1] ist das ....etc.

      Und wie zum Geier definiert man den Typ eines Parameters :-D das muss doch irgendwie in der Deklaration gehen, oder?
      Ich kenne es von anderen Sprachen so: function xy(string x, int y)

      Ps. wird bei deklarationen trotzdem das erste argument schon gezählt?
      Hier ein Beispiel:

      function xyz(a)
      {
          log(arguments[0]);
      }
      
      xyz(1,8,3,4);
      

      der log gibt 1 raus, also das was eigentlich in Parameter "a" steht.
      Das bedeutet die arguments zählen immer ab dem ersten Parameter und fangen nicht nach dem letzten deklarierten an?

      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      schrieb am zuletzt editiert von
      #18

      @ben1983 sagte in Functions mit optionalen Parametern:

      @oliverio Ah OK, man muss arguments in der function auch benutzen, sonst bekommt man beim Aufruf einen Fehler.

      Nö. Gehts auch ohne benutzen. Aber dann kommst du nicht an die Parameter

      Allerdings hat man dann immer noch den nachteil, dass man beim Aufruf keinen definierten Namen oder eine Beschreibung hat.
      Also bspw. arg[0] ist das, arg[1] ist das ....etc.

      Ja, Sinn macht es da nur, wenn du unbestimmt viele gleichartige Parameter übergeben willst

      Und wie zum Geier definiert man den Typ eines Parameters :-D das muss doch irgendwie in der Deklaration gehen, oder?
      Ich kenne es von anderen Sprachen so: function xy(string x, int y)

      Macht man es den sonst bei JavaScript? Nein.
      Das ist einer der Vorteile aber auch Nachteile. Deswegen gibt es typescript wo du das kannst und in 100% JavaScript übersetzt werden kann.

      Ps. wird bei deklarationen trotzdem das erste argument schon gezählt?
      Hier ein Beispiel:

      function xyz(a)
      {
          log(arguments[0]);
      }
      
      xyz(1,8,3,4);
      

      der log gibt 1 raus, also das was eigentlich in Parameter "a" steht.
      Das bedeutet die arguments zählen immer ab dem ersten Parameter und fangen nicht nach dem letzten deklarierten an?

      Wie du selbst festgestellt hast, ja
      Arguments gibt es immer, ob du Parameter definiert hast oder nicht.

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      Ben1983B 1 Antwort Letzte Antwort
      0
      • OliverIOO OliverIO

        @ben1983 sagte in Functions mit optionalen Parametern:

        @oliverio Ah OK, man muss arguments in der function auch benutzen, sonst bekommt man beim Aufruf einen Fehler.

        Nö. Gehts auch ohne benutzen. Aber dann kommst du nicht an die Parameter

        Allerdings hat man dann immer noch den nachteil, dass man beim Aufruf keinen definierten Namen oder eine Beschreibung hat.
        Also bspw. arg[0] ist das, arg[1] ist das ....etc.

        Ja, Sinn macht es da nur, wenn du unbestimmt viele gleichartige Parameter übergeben willst

        Und wie zum Geier definiert man den Typ eines Parameters :-D das muss doch irgendwie in der Deklaration gehen, oder?
        Ich kenne es von anderen Sprachen so: function xy(string x, int y)

        Macht man es den sonst bei JavaScript? Nein.
        Das ist einer der Vorteile aber auch Nachteile. Deswegen gibt es typescript wo du das kannst und in 100% JavaScript übersetzt werden kann.

        Ps. wird bei deklarationen trotzdem das erste argument schon gezählt?
        Hier ein Beispiel:

        function xyz(a)
        {
            log(arguments[0]);
        }
        
        xyz(1,8,3,4);
        

        der log gibt 1 raus, also das was eigentlich in Parameter "a" steht.
        Das bedeutet die arguments zählen immer ab dem ersten Parameter und fangen nicht nach dem letzten deklarierten an?

        Wie du selbst festgestellt hast, ja
        Arguments gibt es immer, ob du Parameter definiert hast oder nicht.

        Ben1983B Offline
        Ben1983B Offline
        Ben1983
        schrieb am zuletzt editiert von
        #19

        @oliverio also wenn ich die Arguments nicht nutze, dann bekomme ich beim Aufruf mit parameterübegabe wie gesagt die Fehlermeldung, dass keine Parameter übergeben werden können.

        OliverIOO 1 Antwort Letzte Antwort
        0
        • Ben1983B Ben1983

          @oliverio also wenn ich die Arguments nicht nutze, dann bekomme ich beim Aufruf mit parameterübegabe wie gesagt die Fehlermeldung, dass keine Parameter übergeben werden können.

          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          schrieb am zuletzt editiert von
          #20

          @ben1983 sagte in Functions mit optionalen Parametern:

          @oliverio also wenn ich die Arguments nicht nutze, dann bekomme ich beim Aufruf mit parameterübegabe wie gesagt die Fehlermeldung, dass keine Parameter übergeben werden können.

          hier kein fehler

          function abc() {
              console.log("ergebnis");
          }
          abc(1,2,3,4,5);
          
          

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          Ben1983B 1 Antwort Letzte Antwort
          0
          • OliverIOO OliverIO

            @ben1983 sagte in Functions mit optionalen Parametern:

            @oliverio also wenn ich die Arguments nicht nutze, dann bekomme ich beim Aufruf mit parameterübegabe wie gesagt die Fehlermeldung, dass keine Parameter übergeben werden können.

            hier kein fehler

            function abc() {
                console.log("ergebnis");
            }
            abc(1,2,3,4,5);
            
            
            Ben1983B Offline
            Ben1983B Offline
            Ben1983
            schrieb am zuletzt editiert von
            #21

            @oliverio bei mir leider nicht.

            
            function mytest()
            {
                log("Ergebins");
            }
            
            
            mytest(1,2,3,4);
            
            

            06B7ED0D-84B7-4A61-8AF4-E86992E1E22E.jpeg

            OliverIOO 1 Antwort Letzte Antwort
            0
            • Ben1983B Ben1983

              @oliverio bei mir leider nicht.

              
              function mytest()
              {
                  log("Ergebins");
              }
              
              
              mytest(1,2,3,4);
              
              

              06B7ED0D-84B7-4A61-8AF4-E86992E1E22E.jpeg

              OliverIOO Offline
              OliverIOO Offline
              OliverIO
              schrieb am zuletzt editiert von
              #22

              @ben1983
              Das ist der Editor der meckert. Wenn du es laufen lässt gibt kein Fehler.

              Meine Adapter und Widgets
              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
              Links im Profil

              Ben1983B 1 Antwort Letzte Antwort
              0
              • OliverIOO OliverIO

                @ben1983
                Das ist der Editor der meckert. Wenn du es laufen lässt gibt kein Fehler.

                Ben1983B Offline
                Ben1983B Offline
                Ben1983
                schrieb am zuletzt editiert von
                #23

                @oliverio aha, das ist aber ja auch etwas doof. Oder etwa nicht? 😂

                OliverIOO 1 Antwort Letzte Antwort
                0
                • Ben1983B Ben1983

                  @oliverio aha, das ist aber ja auch etwas doof. Oder etwa nicht? 😂

                  OliverIOO Offline
                  OliverIOO Offline
                  OliverIO
                  schrieb am zuletzt editiert von
                  #24

                  @ben1983 sagte in Functions mit optionalen Parametern:

                  @oliverio aha, das ist aber ja auch etwas doof. Oder etwa nicht? 😂

                  Ja, das sollte eher eine Warnung sein.

                  Meine Adapter und Widgets
                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                  Links im Profil

                  1 Antwort Letzte Antwort
                  0
                  • AlCalzoneA Offline
                    AlCalzoneA Offline
                    AlCalzone
                    Developer
                    schrieb am zuletzt editiert von
                    #25

                    Der Editor hat schon "Recht". arguments stammt noch aus der JS-Steinzeit und kann z.B. für Verwirrung sorgen, wenn man auf Arrow-Funktionen umstellt.

                    Heutzutage macht man das mit Rest-Parametern, die mittlerweile auch überall unterstützt sind:

                    function mytest(...args) {
                       // ...
                    }
                    
                    mytest(1,2,3,4);
                    

                    ist vollkommen OK. So kann man z.B. auch einige Parameter fest vorgeben und den Rest flexibel lassen:

                    function mytest(ist, immer, da, ...nurManchmal) {
                       // ...
                    }
                    
                    mytest(1,2,3); // OK
                    mytest(1,2,3,4); // OK
                    mytest(1,2); // Nicht OK
                    

                    Allgemein empfehle ich für Funktionen mit vielen Parametern, die auch gerne mal optional sind, stattdessen das Bag-of-Options pattern:

                    function mytest(options) {
                      if (options.abc === 1) {
                        // ...
                      }
                      // etc...
                    }
                    
                    mytest({
                      abc: 1,
                      def: 7,
                      //...
                    });
                    

                    Das hat den Vorteil, dass man nicht die Hälfte der Funktion benötigt, um Overloads auseinander zu dividieren. und außerdem sieht man bei der Aufrufstelle direkt, wofür welcher Wert steht.

                    Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                    paul53P Ben1983B 2 Antworten Letzte Antwort
                    0
                    • AlCalzoneA AlCalzone

                      Der Editor hat schon "Recht". arguments stammt noch aus der JS-Steinzeit und kann z.B. für Verwirrung sorgen, wenn man auf Arrow-Funktionen umstellt.

                      Heutzutage macht man das mit Rest-Parametern, die mittlerweile auch überall unterstützt sind:

                      function mytest(...args) {
                         // ...
                      }
                      
                      mytest(1,2,3,4);
                      

                      ist vollkommen OK. So kann man z.B. auch einige Parameter fest vorgeben und den Rest flexibel lassen:

                      function mytest(ist, immer, da, ...nurManchmal) {
                         // ...
                      }
                      
                      mytest(1,2,3); // OK
                      mytest(1,2,3,4); // OK
                      mytest(1,2); // Nicht OK
                      

                      Allgemein empfehle ich für Funktionen mit vielen Parametern, die auch gerne mal optional sind, stattdessen das Bag-of-Options pattern:

                      function mytest(options) {
                        if (options.abc === 1) {
                          // ...
                        }
                        // etc...
                      }
                      
                      mytest({
                        abc: 1,
                        def: 7,
                        //...
                      });
                      

                      Das hat den Vorteil, dass man nicht die Hälfte der Funktion benötigt, um Overloads auseinander zu dividieren. und außerdem sieht man bei der Aufrufstelle direkt, wofür welcher Wert steht.

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #26

                      @alcalzone sagte: So kann man z.B. auch einige Parameter fest vorgeben und den Rest flexibel lassen

                      Man kann auch alle Parameter fest vorgeben, wenn man bei Nichtvorhandensein einen voreingestellten Wert zuweist.

                      Bild_2021-04-20_191534.png

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      AlCalzoneA 1 Antwort Letzte Antwort
                      0
                      • AlCalzoneA AlCalzone

                        Der Editor hat schon "Recht". arguments stammt noch aus der JS-Steinzeit und kann z.B. für Verwirrung sorgen, wenn man auf Arrow-Funktionen umstellt.

                        Heutzutage macht man das mit Rest-Parametern, die mittlerweile auch überall unterstützt sind:

                        function mytest(...args) {
                           // ...
                        }
                        
                        mytest(1,2,3,4);
                        

                        ist vollkommen OK. So kann man z.B. auch einige Parameter fest vorgeben und den Rest flexibel lassen:

                        function mytest(ist, immer, da, ...nurManchmal) {
                           // ...
                        }
                        
                        mytest(1,2,3); // OK
                        mytest(1,2,3,4); // OK
                        mytest(1,2); // Nicht OK
                        

                        Allgemein empfehle ich für Funktionen mit vielen Parametern, die auch gerne mal optional sind, stattdessen das Bag-of-Options pattern:

                        function mytest(options) {
                          if (options.abc === 1) {
                            // ...
                          }
                          // etc...
                        }
                        
                        mytest({
                          abc: 1,
                          def: 7,
                          //...
                        });
                        

                        Das hat den Vorteil, dass man nicht die Hälfte der Funktion benötigt, um Overloads auseinander zu dividieren. und außerdem sieht man bei der Aufrufstelle direkt, wofür welcher Wert steht.

                        Ben1983B Offline
                        Ben1983B Offline
                        Ben1983
                        schrieb am zuletzt editiert von
                        #27

                        @alcalzone und optional ist irgendwo als JSON deklariert, oder wie?
                        Ist eigentlich JSON sowas wie eine Klasse in C#?

                        OliverIOO 1 Antwort Letzte Antwort
                        0
                        • Ben1983B Ben1983

                          @alcalzone und optional ist irgendwo als JSON deklariert, oder wie?
                          Ist eigentlich JSON sowas wie eine Klasse in C#?

                          OliverIOO Offline
                          OliverIOO Offline
                          OliverIO
                          schrieb am zuletzt editiert von OliverIO
                          #28

                          @ben1983 sagte in Functions mit optionalen Parametern:

                          @alcalzone und optional ist irgendwo als JSON deklariert, oder wie?
                          Ist eigentlich JSON sowas wie eine Klasse in C#?

                          Ist einfach nur eine Textdarstellung eines Objektes. Ein Objekt kann so etwas wie eine Klasse in C# sein. Dadurch lassen sich einfach und problemlos daten speichern, über Systemgrenzen hinweg transportieren und auch wieder einlesen und weiterverarbeitbar

                          In C# findest du die Entsprechung unter dem Stichwort serialize und deserialize. Da gibt es dann diverse (bspw binary und auch JSON)
                          https://de.wikipedia.org/wiki/JavaScript_Object_Notation

                          Meine Adapter und Widgets
                          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                          Links im Profil

                          Ben1983B 1 Antwort Letzte Antwort
                          0
                          • OliverIOO OliverIO

                            @ben1983 sagte in Functions mit optionalen Parametern:

                            @alcalzone und optional ist irgendwo als JSON deklariert, oder wie?
                            Ist eigentlich JSON sowas wie eine Klasse in C#?

                            Ist einfach nur eine Textdarstellung eines Objektes. Ein Objekt kann so etwas wie eine Klasse in C# sein. Dadurch lassen sich einfach und problemlos daten speichern, über Systemgrenzen hinweg transportieren und auch wieder einlesen und weiterverarbeitbar

                            In C# findest du die Entsprechung unter dem Stichwort serialize und deserialize. Da gibt es dann diverse (bspw binary und auch JSON)
                            https://de.wikipedia.org/wiki/JavaScript_Object_Notation

                            Ben1983B Offline
                            Ben1983B Offline
                            Ben1983
                            schrieb am zuletzt editiert von
                            #29

                            @oliverio OK, wie kann ich denn über createState einen STate mit JSON Inhalt deklarieren, oder eine lokale Variable?

                            Ziel soll sein, dass ich quasi eine Struktur erzeugen möchte.
                            Dies gerne durch ein JSON.

                            Bsp.
                            MyVar = {Name: MyName, Age: 37, Hair: Brown}

                            OliverIOO 1 Antwort Letzte Antwort
                            0
                            • Ben1983B Ben1983

                              @oliverio OK, wie kann ich denn über createState einen STate mit JSON Inhalt deklarieren, oder eine lokale Variable?

                              Ziel soll sein, dass ich quasi eine Struktur erzeugen möchte.
                              Dies gerne durch ein JSON.

                              Bsp.
                              MyVar = {Name: MyName, Age: 37, Hair: Brown}

                              OliverIOO Offline
                              OliverIOO Offline
                              OliverIO
                              schrieb am zuletzt editiert von
                              #30

                              @ben1983 sagte in Functions mit optionalen Parametern:

                              @oliverio OK, wie kann ich denn über createState einen STate mit JSON Inhalt deklarieren, oder eine lokale Variable?

                              Ziel soll sein, dass ich quasi eine Struktur erzeugen möchte.
                              Dies gerne durch ein JSON.

                              Bsp.
                              MyVar = {Name: MyName, Age: 37, Hair: Brown}

                              Dein JSON hat Fehler. die Anführungsstriche vor den Strings fehlen.
                              Entweder du definierst es als richtigen String

                              var myVar = '{Name: "MyName", Age: 37, Hair: "Brown"}';
                              setState("javascript.0.test", MyVar, true);
                              

                              oder als Javascript-Objectliteral welches du dann in einen String umwandelst

                              var myVar = {
                                  Name: "MyName",
                                  Age: 37,
                                  Hair: "Brown"
                              }
                              setState("javascript.0.test", JSON.stringify(myVar), true);
                              

                              in beiden Fällen muss man beim auslesen der Daten aus dem Datenpunkt den String wieder in ein Objekt zurückverwandeln

                              var myVar = JSON.parse(getState("javascript.0.test"));
                              

                              Meine Adapter und Widgets
                              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                              Links im Profil

                              Ben1983B 1 Antwort Letzte Antwort
                              0
                              • OliverIOO OliverIO

                                @ben1983 sagte in Functions mit optionalen Parametern:

                                @oliverio OK, wie kann ich denn über createState einen STate mit JSON Inhalt deklarieren, oder eine lokale Variable?

                                Ziel soll sein, dass ich quasi eine Struktur erzeugen möchte.
                                Dies gerne durch ein JSON.

                                Bsp.
                                MyVar = {Name: MyName, Age: 37, Hair: Brown}

                                Dein JSON hat Fehler. die Anführungsstriche vor den Strings fehlen.
                                Entweder du definierst es als richtigen String

                                var myVar = '{Name: "MyName", Age: 37, Hair: "Brown"}';
                                setState("javascript.0.test", MyVar, true);
                                

                                oder als Javascript-Objectliteral welches du dann in einen String umwandelst

                                var myVar = {
                                    Name: "MyName",
                                    Age: 37,
                                    Hair: "Brown"
                                }
                                setState("javascript.0.test", JSON.stringify(myVar), true);
                                

                                in beiden Fällen muss man beim auslesen der Daten aus dem Datenpunkt den String wieder in ein Objekt zurückverwandeln

                                var myVar = JSON.parse(getState("javascript.0.test"));
                                
                                Ben1983B Offline
                                Ben1983B Offline
                                Ben1983
                                schrieb am zuletzt editiert von
                                #31

                                @oliverio ok, aber was setzt Du da auf True?
                                Wie verändert man bspw. den Wert „Age“?

                                OliverIOO 1 Antwort Letzte Antwort
                                0
                                • Ben1983B Ben1983

                                  @oliverio ok, aber was setzt Du da auf True?
                                  Wie verändert man bspw. den Wert „Age“?

                                  OliverIOO Offline
                                  OliverIOO Offline
                                  OliverIO
                                  schrieb am zuletzt editiert von OliverIO
                                  #32

                                  @ben1983

                                  myVar.Age=11;

                                  Das sind Basics in JavaScript
                                  Ich empfehle dir mal ein Tutorial
                                  https://wiki.selfhtml.org/wiki/JavaScript/Tutorials

                                  Meine Adapter und Widgets
                                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                  Links im Profil

                                  Ben1983B 1 Antwort Letzte Antwort
                                  0
                                  • paul53P paul53

                                    @alcalzone sagte: So kann man z.B. auch einige Parameter fest vorgeben und den Rest flexibel lassen

                                    Man kann auch alle Parameter fest vorgeben, wenn man bei Nichtvorhandensein einen voreingestellten Wert zuweist.

                                    Bild_2021-04-20_191534.png

                                    AlCalzoneA Offline
                                    AlCalzoneA Offline
                                    AlCalzone
                                    Developer
                                    schrieb am zuletzt editiert von
                                    #33

                                    @paul53 sagte in Functions mit optionalen Parametern:

                                    Man kann auch alle Parameter fest vorgeben, wenn man bei Nichtvorhandensein einen voreingestellten Wert zuweist.

                                    Ohne jetzt eine Glaubensdiskussion vom Zaun brechen zu wollen, aber das gehört mmn. zumindest in die Funktionssignatur. Entweder als default-Parameter

                                    function mytest(immer, manchmal = 0) {
                                     // ...
                                    }
                                    

                                    oder als JSDoc, welches den Parameter als optional deklariert:

                                    /**
                                     * @param {number} [manchmal] Wird nur manchmal mit einer Zahl befüllt
                                     */
                                    function mytest(immer, manchmal) {
                                      if (manchmal === undefined) manchmal = 0;
                                      // ...
                                    }
                                    

                                    In beiden Fällen kann man dort sehen, wo man die Funktion nutzt, welche Parameter nötig sind und muss nicht immer die Implementation nachschlagen und nachvollziehen.

                                    Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                                    1 Antwort Letzte Antwort
                                    0
                                    • OliverIOO OliverIO

                                      @ben1983

                                      myVar.Age=11;

                                      Das sind Basics in JavaScript
                                      Ich empfehle dir mal ein Tutorial
                                      https://wiki.selfhtml.org/wiki/JavaScript/Tutorials

                                      Ben1983B Offline
                                      Ben1983B Offline
                                      Ben1983
                                      schrieb am zuletzt editiert von
                                      #34

                                      @oliverio ich hatte es genau so versucht.
                                      Wieder Fehlermeldungen des Editors.
                                      Wenn man natürlich immer Fehlermeldungen angezeigt bekommt, die keine sind, macht es die Sache nicht unbedingt einfacher.

                                      OliverIOO 1 Antwort Letzte Antwort
                                      0
                                      • Ben1983B Ben1983

                                        @oliverio ich hatte es genau so versucht.
                                        Wieder Fehlermeldungen des Editors.
                                        Wenn man natürlich immer Fehlermeldungen angezeigt bekommt, die keine sind, macht es die Sache nicht unbedingt einfacher.

                                        OliverIOO Offline
                                        OliverIOO Offline
                                        OliverIO
                                        schrieb am zuletzt editiert von OliverIO
                                        #35

                                        @ben1983 sagte in Functions mit optionalen Parametern:

                                        @oliverio ich hatte es genau so versucht.
                                        Wieder Fehlermeldungen des Editors.
                                        Wenn man natürlich immer Fehlermeldungen angezeigt bekommt, die keine sind, macht es die Sache nicht unbedingt einfacher.

                                        Bei welchen Code gibt es welche Fehlermeldung?
                                        Der verwendete Editor ist eigentlich schon gut. Da es die "Steinzeit"-Befehle als Fehler anzeigt, ist wohl Absicht, obwohl sie keine Fehler im engeren sinne sind.

                                        Einfach das Skript laufen lassen. ggfs. die Debug und Verbose-Option anschalten.
                                        die echten Fehlermeldungen (Konsolenausgabe in roter Farbe) kommen dann im Protokollbereich, wobei die Ausgabe da auch nicht immer optimal ist. Aber in der neuen Version mit dem aktivierbaren debugger hat sich das ein wenig gebessert.

                                        Poste hier am besten mit konkreten Code-Beispielen, die man am besten direkt ausprobieren kann. ich und auch die anderen verfolgen nicht nur diesen Post, sondern noch einige mehr und wissen nicht immer, was da vorher alles so besprochen worden ist.

                                        Meine Adapter und Widgets
                                        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                        Links im Profil

                                        Ben1983B 1 Antwort Letzte Antwort
                                        0
                                        • OliverIOO OliverIO

                                          @ben1983 sagte in Functions mit optionalen Parametern:

                                          @oliverio ich hatte es genau so versucht.
                                          Wieder Fehlermeldungen des Editors.
                                          Wenn man natürlich immer Fehlermeldungen angezeigt bekommt, die keine sind, macht es die Sache nicht unbedingt einfacher.

                                          Bei welchen Code gibt es welche Fehlermeldung?
                                          Der verwendete Editor ist eigentlich schon gut. Da es die "Steinzeit"-Befehle als Fehler anzeigt, ist wohl Absicht, obwohl sie keine Fehler im engeren sinne sind.

                                          Einfach das Skript laufen lassen. ggfs. die Debug und Verbose-Option anschalten.
                                          die echten Fehlermeldungen (Konsolenausgabe in roter Farbe) kommen dann im Protokollbereich, wobei die Ausgabe da auch nicht immer optimal ist. Aber in der neuen Version mit dem aktivierbaren debugger hat sich das ein wenig gebessert.

                                          Poste hier am besten mit konkreten Code-Beispielen, die man am besten direkt ausprobieren kann. ich und auch die anderen verfolgen nicht nur diesen Post, sondern noch einige mehr und wissen nicht immer, was da vorher alles so besprochen worden ist.

                                          Ben1983B Offline
                                          Ben1983B Offline
                                          Ben1983
                                          schrieb am zuletzt editiert von
                                          #36

                                          @oliverio ok.
                                          Was genau macht denn die Debug Funktion?
                                          Denn breakpoints kann man ja nicht setzen, oder? Oder einzelschritt.

                                          GarganoG OliverIOO 2 Antworten Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          962

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe