Zusätzlich interpretieren, wie in anderen Antworten erwähnt, denken Sie daran, dass, wenn ES6 schriftlich (per let
oder const
verwenden) Code verhalten wie du es erwartest.
Warum passiert das? Weil let
und const
Block-Level-Scoping und nicht Funktionsebene-Scoping haben.
let a = 1;
function foo() {
if (!a) {
let a = 10;
}
console.log(a);
}
foo();
Aus diesem Grund, wenn Sie einen JavaScript-Fusseln Mechanismus verwenden, wie ESLint, Sie Regeln wie vars-on-top
(https://eslint.org/docs/rules/vars-on-top) speziell für diese Art von Problemen zu vermeiden, sehen werden.
Ich würde vorschlagen, zuerst selbst zu recherchieren. – maxpaj
Sie haben 2 Variablen mit dem Namen "a". Warum? – Lexi
@ Lexi- das ist die Frage. Wenn ich eine habe dann dnt gehe in wenn Bedingung, wenn nicht ist deklarieren dann deklarieren a .. –