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. Einführung in JavaScript - Diskussionsthread

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.6k

Einführung in JavaScript - Diskussionsthread

Scheduled Pinned Locked Moved Skripten / Logik
23 Posts 9 Posters 4.1k Views
  • 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.
  • HomoranH Offline
    HomoranH Offline
    Homoran
    Global Moderator Administrators
    wrote on last edited by
    #1

    Steinwedel hat hier eine wunderschöne Anleitung für Einsteiger in JavaScript geschrieben.

    http://forum.iobroker.net/viewtopic.php?f=21&t=3926

    Diskussionen dazu bitte hier im Diskussionsthread posten!

    Nicht im Originalthread.

    Gruß

    Rainer

    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    1 Reply Last reply
    0
    • HomoranH Offline
      HomoranH Offline
      Homoran
      Global Moderator Administrators
      wrote on last edited by
      #2

      Erst einmal ganz herzlichen Dank an steinwedel für die Mühe dieses sehr detaillierte Tutorial zu schreiben.

      Er geht darin nicht nur auf die Struktur und die ersten Befehle von JavaScript ein, sondern erklärt ebenfalls die Logik die hinter solchen Programmen steckt.

      Für Einsteiger ist dieser Artikel ein Muss!

      Der Artikel wird sukzessive erweitert, der Link zur Website befindet sich über seinem Einstiegsposting.

      Ich werde versuchen den Artikel auf der Website mit ein paar Screenshots zu erweitern.

      Hinweise von "Profis" auf mögliche Ergänzungen und Verständnisfragen von Einsteigern sind immer willkommen - aber bitte hier im Diskussionsthread!

      Gruß

      Rainer

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      1 Reply Last reply
      0
      • HomoranH Offline
        HomoranH Offline
        Homoran
        Global Moderator Administrators
        wrote on last edited by
        #3

        Ich fange dann mal an ;)

        Beim Korrektur lesen (nur Tippfehler) fiel mir dies auf.
        > Klicken wir nunmehr auf Skripte. Es erscheint ein Fenster, bei dem ****rechts**** die vorhandenen Skripte (bei Neuinstallation gibt es nur zwei Rubriken common und global) und ****links der Inhalt des ausgewählten Skripten**** unten der Konsole angezeigt wird. Jetzt können wir unser erstes Skript schreiben.

        Bei mir sieht es so aus:
        144_img_20161016_101648_784.jpg

        Weiterhin
        > Eine Zeichenkette setzt man in sogenannte Hochkommata, also z.B.: "Hallo Welt!“.
        Sind hochkommata nicht 'das hier'?

        Gruß

        Rainer

        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        1 Reply Last reply
        0
        • P Offline
          P Offline
          pix
          wrote on last edited by
          #4

          @Homoran:

          > Eine Zeichenkette setzt man in sogenannte Hochkommata, also z.B.: "Hallo Welt!“.
          Sind hochkommata nicht 'das hier'? `
          Ist schon richtig, Rainer. Dennoch kann man auch "An- und Abführungszeichen" verwenden. NAtürlich dürfen die beiden Sorten nicht vermischt, aber verschachtelt werden.

          "a + 'b + c' "
          ````ist genauso wie````
          'a + "b + c" '
          

          Gruß

          Pix

          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

          1 Reply Last reply
          0
          • G Offline
            G Offline
            gst666
            wrote on last edited by
            #5

            Rainer hat hat Recht " ist kein Hochkomata. Habe ich bislang gedacht. Ein Hochkomma ist nur '. Interessant ist, dass es genauso wie bei den Anführungszeichen auch bei den Hochkommata verschiedene Formen gibt (vgl. https://de.wikipedia.org/wiki/Apostroph). Nur die hier gezeigten Zeichen begrenzen einen String. Mit dem Zeichen, mit dem man den String einleitet, beendet man ihn.

            console.log(' "Test" '); 
            

            gibt > "Test" aus. Hierzu werde ich bei den Datentypen noch etwas schreiben.

            Bei der Durchsicht der Webseite ist mir ausgefallen, dass bei dem ersten console.log("Hallo Welt!“); das schließende Anführungszeichen ist ein anderes und wird nicht unterstützt. Leider kann ich das bislang nicht ändern.

            1 Reply Last reply
            0
            • HomoranH Offline
              HomoranH Offline
              Homoran
              Global Moderator Administrators
              wrote on last edited by
              #6

              @gst666:

              Leider kann ich das bislang nicht ändern. `
              Da muss Bluefox ran :(

              Ich finde keine Möglichkeit dir speziell für duese Seite schreibrechte einzuräumen.

              Zum Thema Hochkommata:

              [Oberlehrer an]

              Meiner Meinung nach ist nur dieses Zeichen ' ein Hochkomma. So wie es im angelsächsischen bei don't verwendet wird.

              Das wird immer wieder im deutschen durch die beiden Apostrophe ` oder (das andere scheint nicht auf der Android Tastatur enthalten zu sein) ersetzt.

              Was das falsche Anführungszeichen angeht (habe es gerade getauscht) liegt das am Programm mit dem es erstellt wurde. Es handelte sich da IMHO um ein typografisches Abführungszeichen.

              [\Oberlehrer off]

              Ich hatte es hier im Forum kopiert.

              Muss ich mal bei allen anderen überprüfen.

              Auch die jeweiligen ASCII-Codes habe ich jetzt nicht rausgesucht

              Edit: habe noch einige Abführungszeichen gefunden und gegen doppelte Hochkommata getauscht.

              …und dabei festgestellt, dass alle abschließenden einfachen Hochkommata für mich bei Vergrößerung aussehen wie einfache Abführungszeichen :D

              Gruß

              Rainer

              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              1 Reply Last reply
              0
              • BluefoxB Offline
                BluefoxB Offline
                Bluefox
                wrote on last edited by
                #7

                @Homoran:

                @gst666:

                Leider kann ich das bislang nicht ändern. Da muss Bluefox ran :(
                @gst666 Probiere noch mal.

                1 Reply Last reply
                0
                • HomoranH Offline
                  HomoranH Offline
                  Homoran
                  Global Moderator Administrators
                  wrote on last edited by
                  #8

                  @Bluefox:

                  @gst666 Probiere noch mal. `
                  So hätte ich es auch gekonnt - das ist zu einfach :mrgreen:

                  Gruß

                  Rainer

                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  1 Reply Last reply
                  0
                  • blauholstenB Offline
                    blauholstenB Offline
                    blauholsten
                    Developer
                    wrote on last edited by
                    #9

                    Hi,

                    Ertsmal noch mals ein riesen Lob für die tolle Arbeit!!!!!!!!!!!

                    Eine Frage Bezüglich der Formulierung…

                    @gst666:

                    Etwas tückisch ist, dass man Variablen auch implizit durch Wertezuweisung erzeugen kann:

                    	sLastName=„Müller“;
                    

                    Hiervon rate ich jedoch ab, da schwer zu erkennen ist, ob eine Variable erstmalig erzeugt wird, oder unreinen neuen Wert zugewiesen bekommt `

                    Es macht doch meines Wissen einen riesen Unterschied ob man'Variablen so deklariert. Hier kommt doch die globale Verfügbarkeit und Spiel. Deklariere ich eine Variable innerhalb einer Funktion mit var…. Ist sie auch nur dort verfügbar, mache ich dies ohne var.... Ist sie auch außerhalb verfügbar.?

                    Das soll als Frage verstanden werden, bin nämlich absoluter Neuling...

                    Entwickler vom: - Viessman Adapter
                    - Alarm Adapter

                    1 Reply Last reply
                    0
                    • BluefoxB Offline
                      BluefoxB Offline
                      Bluefox
                      wrote on last edited by
                      #10

                      Ich vermeide generell dIE Variablendeklarierung ohne "var". Wie du es richtig bemerkt hast, ohne "var" sind überall sichtbar und können von Garbage Collector nie befreit sein.

                      Und "überall" in diesem Fall heißt: überall in diesem Skript. Nicht in allen Skripten.

                      1 Reply Last reply
                      0
                      • T Offline
                        T Offline
                        tschombe
                        wrote on last edited by
                        #11

                        Arbeite mich aktuell auch tiefer in JavaScript ein,

                        das Beste Buch dafür ist meiner Meinung nach:

                        https://www.amazon.de/Das-Beste-JavaScr … 3897218763

                        Ich kenne nur die englische Version, kann also zur Übersetzung nix sagen, aber

                        das Buch beleuchtet die Guten und Schlechten Aspekte von JavaScript und

                        zeigt Gründe, warum man gewisse Konstrukte verwenden oder vermeiden sollte

                        1 Reply Last reply
                        0
                        • G Offline
                          G Offline
                          gst666
                          wrote on last edited by
                          #12

                          @ blauholsten

                          Danke für einen Beitrag. Bezüglich des Scope, also Sichtbarkeit habe ich nichts geschrieben, da ich bislang noch nicht in das Thema Funktionen eingeführt habe. Ich finde es toll, dass Du so etwas bemerkst. Sichtbarkeit kann bei unübersichtlicher Programmierung ein ganz heikles Thema sein. Falls Dir andere Fragen aufkommen, nur heraus damit. Dadurch habe ich einen Feedback, wie verständlich der Text ist und ob vielleicht Ergänzungen sinnvoll sind. Falls Dich ein Thema besonders interessiert, so Frage ruhig danach. Zwar versuche ich im Augenblick die Kapitel in einer gewissen Reihenfolge zu schreiben. Sicherlich muss ich die einzelnen Kapitel mit der Zeit neu sortieren, damit die Übersichtlichkeit gewährleistet ist.

                          Auch Hinweise zu Schreibfehlern, etc. sind erwünscht. So hat die automatische Textkorrektur in dem Zitat von Dir aus "irgendeinen" das Wort "unreinen" gemacht. Grrgh.

                          In dem Sinne weiterhin viel Spaß beim lesen und nachfragen. Wie alle lernen davon (auch ich, da ich durch das Schreiben, vieles noch mal nachlesen muss und dabei immer wieder auf für mich neues treffe).

                          1 Reply Last reply
                          0
                          • paul53P Offline
                            paul53P Offline
                            paul53
                            wrote on last edited by
                            #13

                            @gst666:

                            Es gibt folgende primitiven Datentypen:

                            • Boolean

                            • Undefined

                            • Null

                            • Number

                            • String Du solltest Javascript-Schlüsselworte generell so schreiben, wie sie in Javascript zu schreiben sind (also klein), da es Anfänger sonst verwirren könnte > Es gibt folgende primitiven Datentypen:

                            • 'boolean'

                            • 'undefined'

                            • null ??

                            • 'number'

                            • 'string' `
                              Ist null wirklich ein Datentyp ? Meiner Meinung nach ist null ein spezieller Wert und typeof null liefert 'object' .
                              @gst666:

                            Boolean:

                            Der Datentyp Boolean stellt einen logischen Wert: „true“ oder „false“. Man kann sich das vorstellen wie Licht an/aus. "true" und "false" sind Strings, was ebenfalls zur Annahme führen könnte, dass es auch so verwendet werden kann. Besser: > boolean:

                            Der Datentyp 'boolean' stellt einen logischen Wert: true oder false. Man kann sich das vorstellen wie Licht an/aus. `
                            Um Schlüsselwörter hervorzuheben, besser eine andere Schriftart verwenden als die normale, aber bitte keine Anführungszeichen.

                            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

                            1 Reply Last reply
                            0
                            • HomoranH Offline
                              HomoranH Offline
                              Homoran
                              Global Moderator Administrators
                              wrote on last edited by
                              #14

                              Hallo gst666;

                              ich muss da paul53 recht geben, auch ich versuche immer Anführungszeichen wo sie nicht hingehören zu vermeiden und durch andere Hilfsmittel den entsprechenden Text hervorzuheben.

                              Apropos Anführungszeichen:

                              Ich habe heute morgen deinen Text von gestern und soeben deinen aktuellen Text auf die Website kopiert und dabei gesehen, dass wieder (ohne System) typographische An- und Abführungszeichen vorkamen - warum auch immer :?:

                              Diesmal waren dann in dem letzten Beispiel sogar andere Hochkommata drin (IMHO diesmal korrekt)

                              Ich muss beizeiten nochmal den gesamten Text (zumindest auf der Website) danach durchflöhen und ändern.

                              Für heute las ich es noch.

                              Gruß

                              Rainer

                              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                              1 Reply Last reply
                              0
                              • G Offline
                                G Offline
                                gst666
                                wrote on last edited by
                                #15

                                @paul53

                                Macht Sinn den Datentyp genauso zu schreiben wie das Schlüsselwort, um Verwirrungen zu vermeiden. Werde ich ändern.

                                null ist laut Definition ein primitiven Datentyp. In der Spezifikation von Javascript kann man es nachlesen: http://www.ecma-international.org/ecma- … null-value.

                                Die Idee Schlüsselwörter hervorzuheben finde ich gut. Mit den Anführungszeichen bin ich nicht glücklich. Mal sehen, ob das auch so einfach in das Wiki kopiert werden kann. Übrigens „true“ oder „false“ sind gerade keine Strings. Nur die Zeichen " oder ' begrenzen einen String. Die Zeichenkombination „“ begrenzt keinen String.

                                @Homoran

                                Die blöden „“ zaubert mir die Autokorrektur rein. Der Vorschlag von Paul möglichst auf Anführungszeichen zu verzichten ist sicherlich der Königsweg. Im Forum würde ich solche Worte einfach so kennzeichnen.

                                1 Reply Last reply
                                0
                                • paul53P Offline
                                  paul53P Offline
                                  paul53
                                  wrote on last edited by
                                  #16

                                  @gst666:

                                  null ist laut Definition ein primitiven Datentyp. In der Spezifikation von Javascript kann man es nachlesen: http://www.ecma-international.org/ecma- … null-value. `
                                  Das stimmt laut ECMA-Definition zwar, aber ich würde als Datentyp nur die Sachen bezeichnen, die typeof Wert liefert. null ist hingegen ein Wert und wird ohne Hochkomma verwendet, während typeof immer einen String liefert.
                                  @gst666:

                                  Übrigens „true“ oder „false“ sind gerade keine Strings. `
                                  Stimmt, kann man aber leicht übersehen (wie mir geschehen).

                                  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

                                  1 Reply Last reply
                                  0
                                  • HomoranH Offline
                                    HomoranH Offline
                                    Homoran
                                    Global Moderator Administrators
                                    wrote on last edited by
                                    #17

                                    @gst666:

                                    Die blöden „“ zaubert mir die Autokorrektur rein. Der Vorschlag von Paul möglichst auf Anführungszeichen zu verzichten ist sicherlich der Königsweg. `
                                    Mir geht es nicht um den Text sondern um die Codebeispiele.

                                    dort müssen ja Stringerkennungszeichen ;-) den String eingrenzen, egal ob es einfache oder doppelte Hochkommata sind.

                                    Die An- und Abführungszeichen habe ich auf der Website bereits gegen dopppelte Hochkommata ersetzt, jedoch scheinen es sich bei den einfachen Hochkommata zu 95% ebenfalls um typographische An-und Abführungszeichen (allerdings einfache) zu handeln. Ich habe das bereits früher vermutet, weil An- und Ab- sahen unterschiedlich aus, jetzt bin ich mir sicher, da im letzten Beispiel des letzten Teils tatsächlich echte Hochkommata verwendet wurden.
                                    144_einfache_hochkommata.jpg
                                    Wie gesagt, da muss ich die Seite noch mal durcharbeiten. Ich hoffe nur, dass bei cut and paste in einen Linuxeditor das sowieso automatisch korrigiert wird.

                                    Gruß

                                    Rainer

                                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                    1 Reply Last reply
                                    0
                                    • paul53P Offline
                                      paul53P Offline
                                      paul53
                                      wrote on last edited by
                                      #18

                                      @gst666:

                                      ts: Zeitstempel, wann der Wert geändert wurde

                                      q: nicht bekannt

                                      from: Instanz des Adapter, der die Meldung in ioBroker gesetzt hat

                                      lc: Zeitstempel, des davor liegenden letzten Änderung des Wertes `
                                      ts: Zeitstempel, wann der Wert aktualisiert wurde (auch ohne Wertänderung)

                                      lc: Zeitstempel, wann der Wert geändert wurde

                                      from: Adapter-Instanz, die den Wert zuletzt aktualisiert hat

                                      q: Qualität - Nummer mit folgenden Zuständen:
                                      ` > 0x00 - 00000000 - gut (kann auch undefined oder null sein)

                                      0x01 - 00000001 - generell schlecht, generelles Problem

                                      0x41 - 01000001 - generelles Problem mit dem Gerät

                                      0x81 - 10000001 - generelles Problem mit dem Sensor

                                      0x42 - 01000010 - Gerät nicht verbunden

                                      0x82 - 10000010 - Sensor nicht verbunden

                                      0x44 - 01000100 - Fehlermeldung aus dem Gerät

                                      0x84 - 10000100 - Fehlermeldung aus dem Sensor `

                                      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

                                      1 Reply Last reply
                                      0
                                      • G Offline
                                        G Offline
                                        gst666
                                        wrote on last edited by
                                        #19

                                        @paul53

                                        Danke für Deine Hinweise. lc hatte ich falsch verstanden. Habe Deine Anmerkung in die Doku eingearbeitet.

                                        1 Reply Last reply
                                        0
                                        • BluefoxB Offline
                                          BluefoxB Offline
                                          Bluefox
                                          wrote on last edited by
                                          #20

                                          Habe alles auf der Webseite eingepflegt. Es ist ein sehr gute Einleitung geworden.

                                          Danke.

                                          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

                                          339

                                          Online

                                          32.5k

                                          Users

                                          81.7k

                                          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