Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

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

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    866

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Functions mit optionalen Parametern

Scheduled Pinned Locked Moved Skripten / Logik
38 Posts 6 Posters 2.7k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • E ente34

    @ben1983

    func(...args) s. hier

    Oder Default-Parameter

    Oder Du übergibts nicht alle Parameter und prüfst in der function auf undefined

    if (para === undefined) {
    
    Ben1983B Offline
    Ben1983B Offline
    Ben1983
    wrote on last edited by
    #3

    @ente34 Hi, danke.
    Also Default Parameter gefällt mir ganz gut, denn als REST würde ja nur einer gehen, welcher dann als ARRAY zu handhaben wäre.
    Mit dem Default Parameter kann man wenigstens einen optionalen mit einem guten Namen versehen.

    OliverIOO 1 Reply Last reply
    0
    • Ben1983B Ben1983

      @ente34 Hi, danke.
      Also Default Parameter gefällt mir ganz gut, denn als REST würde ja nur einer gehen, welcher dann als ARRAY zu handhaben wäre.
      Mit dem Default Parameter kann man wenigstens einen optionalen mit einem guten Namen versehen.

      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      wrote on last edited by
      #4

      @ben1983 sagte in Functions mit optionalen Parametern:

      @ente34 Hi, danke.
      Also Default Parameter gefällt mir ganz gut, denn als REST würde ja nur einer gehen, welcher dann als ARRAY zu handhaben wäre.
      Mit dem Default Parameter kann man wenigstens einen optionalen mit einem guten Namen versehen.

      Es gibt auch noch die wunderbare Variable arguments
      diese muss nicht initialisiert werden, sie ist in jeder Funktion einfach da
      und enthält ein Array mit allen übergebenen Parametern (und noch ein paar weitere Information zur Funktion und aufrufenden Funktion (caller,callee).
      auch wenn diese Parameter im Funktionskopf gar nicht definiert sind
      https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Functions/arguments

      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 Reply Last reply
      0
      • OliverIOO OliverIO

        @ben1983 sagte in Functions mit optionalen Parametern:

        @ente34 Hi, danke.
        Also Default Parameter gefällt mir ganz gut, denn als REST würde ja nur einer gehen, welcher dann als ARRAY zu handhaben wäre.
        Mit dem Default Parameter kann man wenigstens einen optionalen mit einem guten Namen versehen.

        Es gibt auch noch die wunderbare Variable arguments
        diese muss nicht initialisiert werden, sie ist in jeder Funktion einfach da
        und enthält ein Array mit allen übergebenen Parametern (und noch ein paar weitere Information zur Funktion und aufrufenden Funktion (caller,callee).
        auch wenn diese Parameter im Funktionskopf gar nicht definiert sind
        https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Functions/arguments

        Ben1983B Offline
        Ben1983B Offline
        Ben1983
        wrote on last edited by
        #5

        @oliverio Danke, hört sich ganz cool an, aber nutzt mir jetzt an der Stelle für die variable Anzahl der Parameter nichts, oder?

        OliverIOO 1 Reply Last reply
        0
        • Ben1983B Ben1983

          @oliverio Danke, hört sich ganz cool an, aber nutzt mir jetzt an der Stelle für die variable Anzahl der Parameter nichts, oder?

          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          wrote on last edited by
          #6

          @ben1983 sagte in Functions mit optionalen Parametern:

          @oliverio Danke, hört sich ganz cool an, aber nutzt mir jetzt an der Stelle für die variable Anzahl der Parameter nichts, oder?

          Das kommt drauf an welche Art von variable Parameter du benötigst.
          Du hattest keine Details über deine umzubauenden Funktionen genannt.
          Wenn man dieses Beispiel anschaut, dann kann man Funktionen bauen,
          die eine beliebige Anzahl von (gleichgearteten) Parametern entgegennimmt, ohne das man vorher erst ein Array bauen muss.
          https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Functions/arguments#example_defining_function_that_concatenates_several_strings

          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 Reply Last reply
          0
          • OliverIOO OliverIO

            @ben1983 sagte in Functions mit optionalen Parametern:

            @oliverio Danke, hört sich ganz cool an, aber nutzt mir jetzt an der Stelle für die variable Anzahl der Parameter nichts, oder?

            Das kommt drauf an welche Art von variable Parameter du benötigst.
            Du hattest keine Details über deine umzubauenden Funktionen genannt.
            Wenn man dieses Beispiel anschaut, dann kann man Funktionen bauen,
            die eine beliebige Anzahl von (gleichgearteten) Parametern entgegennimmt, ohne das man vorher erst ein Array bauen muss.
            https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Functions/arguments#example_defining_function_that_concatenates_several_strings

            Ben1983B Offline
            Ben1983B Offline
            Ben1983
            wrote on last edited by
            #7

            @oliverio ich möchte quasi eine Anzahl x an festen parametern haben und eine Anzahl x an optionalen.
            Mit dem ... Parameter sind ja theoretisch unendlich viele möglich.
            Wie das im Beispiel von dir geht, verstehe ich nicht, da ist doch gar kein ... mit drin.
            Des Weiteren deklariere ich nirgends einen Typ.
            Alle sind dadurch als any deklariert. Ist für spätere Erweiterungen erst mal nicht schlimm, aber deklariert ihr lieber einen festen Typ? Wenn ja, wie geht das in JS?

            OliverIOO 1 Reply Last reply
            0
            • Ben1983B Ben1983

              @oliverio ich möchte quasi eine Anzahl x an festen parametern haben und eine Anzahl x an optionalen.
              Mit dem ... Parameter sind ja theoretisch unendlich viele möglich.
              Wie das im Beispiel von dir geht, verstehe ich nicht, da ist doch gar kein ... mit drin.
              Des Weiteren deklariere ich nirgends einen Typ.
              Alle sind dadurch als any deklariert. Ist für spätere Erweiterungen erst mal nicht schlimm, aber deklariert ihr lieber einen festen Typ? Wenn ja, wie geht das in JS?

              OliverIOO Offline
              OliverIOO Offline
              OliverIO
              wrote on last edited by
              #8

              @ben1983 sagte in Functions mit optionalen Parametern:

              @oliverio ich möchte quasi eine Anzahl x an festen parametern haben und eine Anzahl x an optionalen.
              Mit dem ... Parameter sind ja theoretisch unendlich viele möglich.
              Wie das im Beispiel von dir geht, verstehe ich nicht, da ist doch gar kein ... mit drin.
              Des Weiteren deklariere ich nirgends einen Typ.
              Alle sind dadurch als any deklariert. Ist für spätere Erweiterungen erst mal nicht schlimm, aber deklariert ihr lieber einen festen Typ? Wenn ja, wie geht das in JS?

              Der Spread Operator ... ist Bestandteil von ES6.
              Wenn alle Browser die das benutzen ES6 können, dann alles gut.
              Das was dort beschrieben ist, ist die Methode vor ES6.
              Babel übersetzt den Spread-Operator wahrscheinlich genau in dieses Construct.

              myConcat(", ", "red", "orange", "blue");
              function myConcat(separator) {
                var args = Array.prototype.slice.call(arguments, 1);
                return args.join(separator);
              }
              
              

              Hier wird im Funktionskopf nur der Parameter seperator definiert.
              der slice-Befehl nimmt aus dem arguments-Array dann alle Werte ab dem Index 1 (also alle parameter ausser dem ersten (=separator))
              Damit befindet sich in der Variable args die Werte "red", "orange", "blue", die dann mit join und dem seperator zu einem string verbunden werden.

              Any? Verwendest du Typescript? In Javascript gibt es keinen Typ namens Any

              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 2 Replies Last reply
              0
              • OliverIOO OliverIO

                @ben1983 sagte in Functions mit optionalen Parametern:

                @oliverio ich möchte quasi eine Anzahl x an festen parametern haben und eine Anzahl x an optionalen.
                Mit dem ... Parameter sind ja theoretisch unendlich viele möglich.
                Wie das im Beispiel von dir geht, verstehe ich nicht, da ist doch gar kein ... mit drin.
                Des Weiteren deklariere ich nirgends einen Typ.
                Alle sind dadurch als any deklariert. Ist für spätere Erweiterungen erst mal nicht schlimm, aber deklariert ihr lieber einen festen Typ? Wenn ja, wie geht das in JS?

                Der Spread Operator ... ist Bestandteil von ES6.
                Wenn alle Browser die das benutzen ES6 können, dann alles gut.
                Das was dort beschrieben ist, ist die Methode vor ES6.
                Babel übersetzt den Spread-Operator wahrscheinlich genau in dieses Construct.

                myConcat(", ", "red", "orange", "blue");
                function myConcat(separator) {
                  var args = Array.prototype.slice.call(arguments, 1);
                  return args.join(separator);
                }
                
                

                Hier wird im Funktionskopf nur der Parameter seperator definiert.
                der slice-Befehl nimmt aus dem arguments-Array dann alle Werte ab dem Index 1 (also alle parameter ausser dem ersten (=separator))
                Damit befindet sich in der Variable args die Werte "red", "orange", "blue", die dann mit join und dem seperator zu einem string verbunden werden.

                Any? Verwendest du Typescript? In Javascript gibt es keinen Typ namens Any

                Ben1983B Offline
                Ben1983B Offline
                Ben1983
                wrote on last edited by
                #9

                @oliverio wenn ich im JS in iobroker mit der Maus über die Funktion gehe, dann wird dort Type Any angezeigt.
                ............
                Das bedeutet ich kann jeder Functions soviel Parameter übergeben wie ich mag?
                Ist ja einerseits toll, aber wie soll derjenige, der die Funktion nicht selbst erstellt hat das dann durchblicken?

                OliverIOO 1 Reply Last reply
                0
                • Ben1983B Ben1983

                  @oliverio wenn ich im JS in iobroker mit der Maus über die Funktion gehe, dann wird dort Type Any angezeigt.
                  ............
                  Das bedeutet ich kann jeder Functions soviel Parameter übergeben wie ich mag?
                  Ist ja einerseits toll, aber wie soll derjenige, der die Funktion nicht selbst erstellt hat das dann durchblicken?

                  OliverIOO Offline
                  OliverIOO Offline
                  OliverIO
                  wrote on last edited by OliverIO
                  #10

                  @ben1983 sagte in Functions mit optionalen Parametern:

                  @oliverio wenn ich im JS in iobroker mit der Maus über die Funktion gehe, dann wird dort Type Any angezeigt.
                  ............
                  Das bedeutet ich kann jeder Functions soviel Parameter übergeben wie ich mag?

                  im Prinzip ja. maximal wahrscheinlich mehr als du je brauchen kannst
                  https://stackoverflow.com/questions/22747068/is-there-a-max-number-of-arguments-javascript-functions-can-accept

                  Ist ja einerseits toll, aber wie soll derjenige, der die Funktion nicht selbst erstellt hat das dann durchblicken?

                  wenn andere es benutzen sollen, dann sollte es eine dokumentation (auch inline) geben. wie bspw hier zu iobroker
                  https://github.com/ioBroker/ioBroker.js-controller/blob/af51b33f700f2a3ba880e5f343fd70a208bbe497/doc/adapter.js.html#L3368

                  mit Zusatzhilfsmitteln kann man aus solchen Notationen auch automatisch eine Hilfe erzeugen lassen.
                  Es gibt dafür sogar Standards (kannst ja mal nach JSDoc suchen)

                  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 Reply Last reply
                  0
                  • OliverIOO OliverIO

                    @ben1983 sagte in Functions mit optionalen Parametern:

                    @oliverio ich möchte quasi eine Anzahl x an festen parametern haben und eine Anzahl x an optionalen.
                    Mit dem ... Parameter sind ja theoretisch unendlich viele möglich.
                    Wie das im Beispiel von dir geht, verstehe ich nicht, da ist doch gar kein ... mit drin.
                    Des Weiteren deklariere ich nirgends einen Typ.
                    Alle sind dadurch als any deklariert. Ist für spätere Erweiterungen erst mal nicht schlimm, aber deklariert ihr lieber einen festen Typ? Wenn ja, wie geht das in JS?

                    Der Spread Operator ... ist Bestandteil von ES6.
                    Wenn alle Browser die das benutzen ES6 können, dann alles gut.
                    Das was dort beschrieben ist, ist die Methode vor ES6.
                    Babel übersetzt den Spread-Operator wahrscheinlich genau in dieses Construct.

                    myConcat(", ", "red", "orange", "blue");
                    function myConcat(separator) {
                      var args = Array.prototype.slice.call(arguments, 1);
                      return args.join(separator);
                    }
                    
                    

                    Hier wird im Funktionskopf nur der Parameter seperator definiert.
                    der slice-Befehl nimmt aus dem arguments-Array dann alle Werte ab dem Index 1 (also alle parameter ausser dem ersten (=separator))
                    Damit befindet sich in der Variable args die Werte "red", "orange", "blue", die dann mit join und dem seperator zu einem string verbunden werden.

                    Any? Verwendest du Typescript? In Javascript gibt es keinen Typ namens Any

                    Ben1983B Offline
                    Ben1983B Offline
                    Ben1983
                    wrote on last edited by
                    #11

                    @oliverio wieso kann man jetzt hier mehr als einen Parameter übergeben?
                    Sehe nur „Seperator“.... Gruß Ben

                    OliverIOO 1 Reply Last reply
                    0
                    • Ben1983B Ben1983

                      @oliverio wieso kann man jetzt hier mehr als einen Parameter übergeben?
                      Sehe nur „Seperator“.... Gruß Ben

                      OliverIOO Offline
                      OliverIOO Offline
                      OliverIO
                      wrote on last edited by
                      #12

                      @ben1983 sagte in Functions mit optionalen Parametern:

                      @oliverio wieso kann man jetzt hier mehr als einen Parameter übergeben?
                      Sehe nur „Seperator“.... Gruß Ben

                      Lese einfach mal die Seite die ich oben verlinkt habe.
                      Die stehen alle in der bereits erwähnten Variable „arguments“ drin. Du selbst kannst keine Variable so nennen. Sie gehört zum sprachkonstrukt von javascript

                      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 Reply Last reply
                      0
                      • OliverIOO OliverIO

                        @ben1983 sagte in Functions mit optionalen Parametern:

                        @oliverio wieso kann man jetzt hier mehr als einen Parameter übergeben?
                        Sehe nur „Seperator“.... Gruß Ben

                        Lese einfach mal die Seite die ich oben verlinkt habe.
                        Die stehen alle in der bereits erwähnten Variable „arguments“ drin. Du selbst kannst keine Variable so nennen. Sie gehört zum sprachkonstrukt von javascript

                        Ben1983B Offline
                        Ben1983B Offline
                        Ben1983
                        wrote on last edited by
                        #13

                        @oliverio ok, aber wenn ich eine Functions anlegen, kann ich nicht mehr als die deklarierten übergeben.

                        OliverIOO 1 Reply Last reply
                        0
                        • Ben1983B Ben1983

                          @oliverio ok, aber wenn ich eine Functions anlegen, kann ich nicht mehr als die deklarierten übergeben.

                          OliverIOO Offline
                          OliverIOO Offline
                          OliverIO
                          wrote on last edited by
                          #14

                          @ben1983 sagte in Functions mit optionalen Parametern:

                          @oliverio ok, aber wenn ich eine Functions anlegen, kann ich nicht mehr als die deklarierten übergeben.

                          Hast du es ausprobiert? Gibt es eine Fehlermeldung?

                          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 Reply Last reply
                          1
                          • OliverIOO OliverIO

                            @ben1983 sagte in Functions mit optionalen Parametern:

                            @oliverio ok, aber wenn ich eine Functions anlegen, kann ich nicht mehr als die deklarierten übergeben.

                            Hast du es ausprobiert? Gibt es eine Fehlermeldung?

                            Ben1983B Offline
                            Ben1983B Offline
                            Ben1983
                            wrote on last edited by
                            #15

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

                            OliverIOO 1 Reply Last reply
                            0
                            • Ben1983B Ben1983

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

                              OliverIOO Offline
                              OliverIOO Offline
                              OliverIO
                              wrote on last edited by
                              #16

                              @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
                              

                              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 Reply Last reply
                              0
                              • 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
                                wrote on last edited by 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 Reply Last reply
                                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
                                  wrote on last edited by
                                  #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 Reply Last reply
                                  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
                                    wrote on last edited by
                                    #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 Reply Last reply
                                    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
                                      wrote on last edited by
                                      #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 Reply Last reply
                                      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
                                        wrote on last edited by
                                        #21

                                        @oliverio bei mir leider nicht.

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

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

                                        OliverIOO 1 Reply Last reply
                                        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
                                          wrote on last edited by
                                          #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 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          486

                                          Online

                                          32.6k

                                          Users

                                          82.1k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe