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 № 1Variablen 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.