Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Fehler bei konstanten Variablen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Fehler bei konstanten Variablen

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      Pat last edited by

      Ich habe bei all meinem Skripten ein Fehler bei den ich konstanten Variablen verwende.
      Und zwar ist "zimmer" rot unterstrichen mit der Fehlermeldung "index2.js(x, x): 'xyz' was also declared here."

      const zimmer = rooms()[6]; // Welches Zimmer
      

      Diese "const" habe ich vielen Skripten verwendet die "rooms()" kommt aus aus dem "Global".
      Aber es betrifft auch const die nicht aus dem Global kommen die ich aber auch in einigen Skripten verwende.
      z.B.

      const script_path = 'javascript.' + 0 + '.Heizung.' + zimmer; // Vorgabe des Pfades des Scriptes
      

      Dort steht zusätzlich die Fehlermeldung "Cannot redeclare block-scoped variable 'script_path'." drin. Hier ist "script_path" rot unterstrichen.

      Wenn ich den Befehl export drunter schreibe verschwinden die Fehler!

      const zimmer = rooms()[6]; // Welches Zimmer
      const script_path = 'javascript.' + 0 + '.Heizung.' + zimmer; // Vorgabe des Pfades des Scriptes
      export{};
      

      Kann mir einer vielleicht sagen woran dies liegen kann??

      Vielen Dank schonmal

      A OliverIO AlCalzone 3 Replies Last reply Reply Quote 0
      • A
        Ahnungsbefreit @Pat last edited by

        @pat Alles, was in einem Script im Ordner "global" deklariert wurde, wird automatisch an alle anderen Scripts dran gehängt. Daher sollte man "global" wirklich nur für Sachen nutzen, die man wirklich in fast allen Scripten braucht. Könnte es nicht einfach daran liegen?

        P 1 Reply Last reply Reply Quote 0
        • P
          Pat @Ahnungsbefreit last edited by

          @ahnungsbefreit
          Nabend

          Also die "rooms()" will ich ja in jedem Skript haben da ich dort ein Array habe mit all meinem räumen somit muss ich nicht im jeden Skript die neu anlegen.

          Da ich ich in jedem Skript wo ich die Räume brauche auch immer die const mir "zimmer" genannt habe das er deshalb meckert. Wenn ich die zimmer1 umbenenne ist der Fehler auch weg. Aber eigentlich dürft es ihn nicht stören.

          Und warum ist der Fehler weg mit export ??

          PS. Die Skripte funktionieren alle. Es ist nur weil mich das stört.

          A 1 Reply Last reply Reply Quote 0
          • A
            Ahnungsbefreit @Pat last edited by

            @pat sagte in Fehler bei konstanten Variablen:

            Da ich ich in jedem Skript wo ich die Räume brauche auch immer die const mir "zimmer" genannt habe das er deshalb meckert. Wenn ich die zimmer1 umbenenne ist der Fehler auch weg. Aber eigentlich dürft es ihn nicht stören.

            Wenn er in jedem Script "meckert", sobald Du eine const zimmer deklarierst, kann das eigentlich nur bedeuten, dass Du das auch in einem "global" script deklariert hast

            1 Reply Last reply Reply Quote 0
            • OliverIO
              OliverIO @Pat last edited by

              @pat sagte in Fehler bei konstanten Variablen:

              Ich habe bei all meinem Skripten ein Fehler bei den ich konstanten Variablen verwende.
              Und zwar ist "zimmer" rot unterstrichen mit der Fehlermeldung "index2.js(x, x): 'xyz' was also declared here."

              const zimmer = rooms()[6]; // Welches Zimmer
              

              Diese "const" habe ich vielen Skripten verwendet die "rooms()" kommt aus aus dem "Global".
              Aber es betrifft auch const die nicht aus dem Global kommen die ich aber auch in einigen Skripten verwende.
              z.B.

              const script_path = 'javascript.' + 0 + '.Heizung.' + zimmer; // Vorgabe des Pfades des Scriptes
              

              Dort steht zusätzlich die Fehlermeldung "Cannot redeclare block-scoped variable 'script_path'." drin. Hier ist "script_path" rot unterstrichen.

              Wenn ich den Befehl export drunter schreibe verschwinden die Fehler!

              const zimmer = rooms()[6]; // Welches Zimmer
              const script_path = 'javascript.' + 0 + '.Heizung.' + zimmer; // Vorgabe des Pfades des Scriptes
              export{};
              

              Kann mir einer vielleicht sagen woran dies liegen kann??

              Vielen Dank schonmal

              const darf innerhalb des gleichen scopes nicht erneut deklariert werden.
              wenn du const verwendest, dann sollte der Inhalt auch wirklich über die Laufzeit des Skripts KONSTANT, also unveränderlich sein.
              Falls es das nicht ist (was die Fehlermeldung vermuten lässt, da du immer neu zuweist) dann verwende "var" oder "let"

              1 Reply Last reply Reply Quote 0
              • AlCalzone
                AlCalzone Developer @Pat last edited by

                @pat sagte in Fehler bei konstanten Variablen:

                Diese "const" habe ich vielen Skripten verwendet die "rooms()" kommt aus aus dem "Global".

                Wenn du das gleiche const (also zimmer) nur in anderen nicht-globalen Skripten hast, ist das ok. Der Editor "weiß" nicht, dass diese Skripte voneinander getrennt sind. Für ihn sind mehrere Skripte "geladen", die alle den globalen Scope erweitern (Im Browser wäre das so, so funktioniert es ioBroker aber nicht).
                Das sollte aber nur ein "Problem" beim Bearbeiten sein - sofern das Skript startet, einfach ignorieren.

                Wenn ich den Befehl export drunter schreibe verschwinden die Fehler!

                Das liegt daran, dass das Skript dann vom Editor als "Modul" interpretiert wird und somit nicht mehr diesen imaginären globalen Scope erweitert.

                P 1 Reply Last reply Reply Quote 1
                • P
                  Pat @AlCalzone last edited by

                  @alcalzone

                  Vielen lieben Dank dir!!

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  711
                  Online

                  31.8k
                  Users

                  80.0k
                  Topics

                  1.3m
                  Posts

                  4
                  7
                  535
                  Loading More Posts
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes
                  Reply
                  • Reply as topic
                  Log in to reply
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                  The ioBroker Community 2014-2023
                  logo