/ / Javascript - Warum werden Deklarationen in exklusiven if-Klauseln als doppelt betrachtet? - Javascript, Umfang

Javascript - Warum werden Deklarationen in exklusiven if-Klauseln als doppelt betrachtet? - Javascript, Umfang

Mit folgendem JavaScript

if (someCondition){
var x = ...; //Resharper warns that this is a duplicate declaration
}
else {
var x = ...; //Resharper warns that this is a duplicate declaration
}

Aber die Bereiche sind anders? Warum ist das wichtig? Ist das exklusiv für JavaScript?

Ich bekomme keine solche Warnung mit gleichwertigem Code in C #.

Oder - Ist es eine falsche Resharper-Warnung?

Antworten:

6 für die Antwort № 1

Variablen in JavaScript sind standardmäßig an gebundenFunktionsumfang, um den Umfang nicht zu blockieren. Innerhalb von Blöcken definierte Variablen werden in den Funktionsumfang geholt, was eine sehr häufige Fehlerquelle darstellt. und genau das passiert auch in deinem Fall.

Variablen können im Blockbereich mit deklariert werden let Stichwort obwohl dies JavaScript 1.7 erfordert.