使用以下JavaScript
if (someCondition){
var x = ...; //Resharper warns that this is a duplicate declaration
}
else {
var x = ...; //Resharper warns that this is a duplicate declaration
}
Run Code Online (Sandbox Code Playgroud)
但范围不同?为什么这很重要?这是JavaScript独有的吗?
我在C#中使用等效代码没有得到这样的警告.
或者 - 这是一个错误的Resharper警告吗?
JavaScript中的变量默认绑定到函数范围,而不是阻止范围.块内定义的变量被提升到功能范围,这是一个非常常见的错误来源.而且你的情况究竟发生了什么.
可以使用let关键字在块作用域中声明变量,尽管这需要JavaScript 1.7.
| 归档时间: |
|
| 查看次数: |
604 次 |
| 最近记录: |