为什么互斥if子句中的声明被认为是重复的?

Javascript - Why are declarations in exclusive if clauses considered duplicate?

本文关键字:认为是 声明 为什么 if 子句      更新时间:2023-09-26

使用以下JavaScript

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

但是作用范围是不同的?为什么这很重要?这是JavaScript独有的吗?

我在c#中没有得到这样的警告。

或者——这是一个错误的Resharper警告吗?

JavaScript中的变量默认绑定到函数作用域,而不是块作用域。在块内定义的变量被提升到函数作用域,这是一个非常常见的错误来源。以及你的情况。

变量可以用let关键字在块范围内声明,尽管这需要JavaScript 1.7。