Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Fehlermeldung : Cannot redeclare block-scoped variable

    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

    Fehlermeldung : Cannot redeclare block-scoped variable

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

      Hallo All,
      ich habe mehrere JS-, Blockly- und Node-Red Scripte am laufen, zu JS habe ich eine Anfängerfrage. Folgendes Problem an einem Beispiel dargestellt.

      Ich habe zwei identische Scripte prog1.js und prog2.js

      prg1.js
      "use strict";
      let a="a";
      let b="b";
      …..weiterer Code

      prg2.js
      "use strict";
      let a="a";
      let b="b";
      …..weiterer Code

      Klicke ich mit der Maus zwischen diesen beiden Scripten hin und her ist alles normal. Die Scripte können auch mehrere Zeilen lang sein, es passt alles. Klicke ich aber auf ein Script mit Blockly und klicke anschließend auf ein Script mit JS, moniert der Editor auf einmal die Variablen a und b in beiden Programmen mit folgender Fehlermeldung.

      Cannot redeclare block-scoped variable 'a'.(2451)
      index1.js(2, 5): 'a' was also declared here.

      Schreibe ich beide Scripte so….

      prg1.js
      var a="a";
      var b="b";

      prg2.js
      var a="a";
      var b="b";

      ...tritt der Fehler nicht auf. Die Fehlermeldung mit der let Variante hat auch keinen Einfluss auf irgendwelche Scripts die laufen, es funktioniert alles ohne Probleme.

      Ist der Fehler einmal aufgetreten kann man ihn einfach ignorieren oder man setzt diesen Parameter // @ts-nocheck am Anfang des Scripts.

      Alternativ kann man auch den Browsertab schließen und dann neu starten. Ist der Browsertab neu gestartet, sind die Fehlermeldungen weg, aber nur solange bis man wieder auf ein Blockly Script klickt, dann taucht der Fehler wieder auf.

      let und var, was sagt Tante Google dazu:

      Technisch machen alle diese Varianten dasselbe. Es ist also eine Frage des persönlichen Geschmacks und der Ästhetik.

      Jetzt meine Anfängerfrage, warum tritt bei der let Variante diese Fehlermeldung auf?.

      Danke schon mal im Voraus für eure Antworten,

      tschuess peter

      Asgothian 1 Reply Last reply Reply Quote 0
      • Asgothian
        Asgothian Developer @Sokomoto last edited by Asgothian

        @sokomoto
        Die Frage beantwortet dieser Text:

        var and let are both used for variable declaration in javascript but the difference between them is that var is function scoped and let is block scoped.

        Letztendlich bedeutet das das die Definition der Variablen mit var weiter definiert sind als mit let. Damit einher geht das die Definition der Variablen über var weniger scharf vom Interpreter überprüft wird.

        Als letztes noch die Aussage das es keinen Einfluss auf irgendwelche Skripte hat: Ich gehe davon aus das es schon Einflüsse gibt, Du diese aber nicht merkst weil du

        • die Variablen lokal in jedem Skript neu initialisierst
        • die Variablen nicht global skriptübergreifend zu benutzen versuchst.

        A.

        Sokomoto 1 Reply Last reply Reply Quote 0
        • Sokomoto
          Sokomoto @Asgothian last edited by Sokomoto

          @asgothian sagte in Fehlermeldung : Cannot redeclare block-scoped variable:

          @sokomoto
          Die Frage beantwortet dieser Text:
          *var and let are both used for variable ....

          Nicht ganz, da der Fehler nur auftritt , sobald man zwischen den Scripten Blockly und JS im Editor umschaltet.
          Ich interpretiere das ganze jetzt so, im Iobrocker mit der alten Variante var die Variablen deklarieren, das macht weniger Stress. :-))

          tschuess peter

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

          Support us

          ioBroker
          Community Adapters
          Donate

          673
          Online

          31.8k
          Users

          80.0k
          Topics

          1.3m
          Posts

          2
          3
          210
          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