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. JavaScript
  5. Fehlermeldung : Cannot redeclare block-scoped variable

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Fehlermeldung : Cannot redeclare block-scoped variable

Geplant Angeheftet Gesperrt Verschoben JavaScript
3 Beiträge 2 Kommentatoren 367 Aufrufe 2 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.
  • SokomotoS Offline
    SokomotoS Offline
    Sokomoto
    schrieb am zuletzt editiert von
    #1

    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

    AsgothianA 1 Antwort Letzte Antwort
    0
    • SokomotoS Sokomoto

      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

      AsgothianA Offline
      AsgothianA Offline
      Asgothian
      Developer
      schrieb am zuletzt editiert von Asgothian
      #2

      @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.

      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

      SokomotoS 1 Antwort Letzte Antwort
      0
      • AsgothianA 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.

        SokomotoS Offline
        SokomotoS Offline
        Sokomoto
        schrieb am zuletzt editiert von Sokomoto
        #3

        @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 Antwort Letzte Antwort
        0
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate

        904

        Online

        32.6k

        Benutzer

        82.2k

        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