【发布时间】:2013-03-25 19:51:13
【问题描述】:
根据其documentation 中对funcscope 选项的描述,JSHint 似乎认识到在“预期范围”中声明的变量的效用,例如控制结构等(即使实际上在 JS 中的函数内只有一个作用域)。
那么,为什么它会抛出以下错误,说i 被声明了多次?
if (condition) {
var i = 1;
//
}
else {
var i = 2;
//
}
将funcscope 设置为true 或false 没有帮助。有没有办法抑制这个错误?
(我喜欢“逻辑/预期”变量范围,以及“定义”变量尽可能接近需要的位置。在需要移动代码块时帮助我。
编辑:
我知道可变提升。但我不同意 Douglas Crockford 关于在函数顶部声明所有 vars 的观点。这使得代码更难阅读,并且当您必须移动代码 sn-ps 时更难重构。
如果您在 JSHint 主页阅读 funcscope 的文档,它还谈到了预期范围,这也正是我所指的。我在这种情况下问我的问题)
【问题讨论】:
标签: javascript coding-style jshint