Javascript 测试代码段时出现奇怪的JSLint错误

Javascript 测试代码段时出现奇怪的JSLint错误,javascript,jslint,Javascript,Jslint,当我用JSLint在JSFIDLE中测试时,它给了我一个奇怪的警告: 第3行的问题字符10:无法设置的属性“first” 未定义 但是如果我在for循环之前声明变量currentNumber,它不会抱怨 这是什么原因?看起来像是JSFIDLE或JSLint中的一个bug,老实说。。。如果我尝试var I=0;i

当我用JSLint在JSFIDLE中测试时,它给了我一个奇怪的警告:

第3行的问题字符10:无法设置的属性“first” 未定义

但是如果我在for循环之前声明变量currentNumber,它不会抱怨


这是什么原因?

看起来像是JSFIDLE或JSLint中的一个bug,老实说。。。如果我尝试var I=0;i<10++它给出了同样的错误。如果我去掉var,它就不再抱怨了。

老实说,看起来像是jsFiddle或JSLint中的bug。。。如果我尝试var I=0;i<10++它给出了同样的错误。如果我去掉var,它就不会抱怨了。

JSLint希望在函数的顶部声明var。您在jsfiddle中遇到的特定错误很奇怪,但是来自JSLint的抱怨一点也不意外

第3行的问题字符6:将'var'声明移到函数顶部

警告

JSLint会伤害你的感情

var语句应该是函数体中的第一个语句


JSLint希望在函数的顶部声明var。您在jsfiddle中遇到的特定错误很奇怪,但是来自JSLint的抱怨一点也不意外

第3行的问题字符6:将'var'声明移到函数顶部

警告

JSLint会伤害你的感情

var语句应该是函数体中的第一个语句



你演奏错了小提琴。您当前链接的fiddle是有效的,并且不包含.first属性设置器。@Rob W当它执行并且不包含第一个属性时,如果单击JSLint按钮,它仍然显示错误。它在Firefox 7.0.1中没有抱怨。它在哪个浏览器中抱怨?我只在Chrome 14中重现了这个错误,不是Firefox 3.6.23。你展示的是错误的小提琴。您当前链接的fiddle是有效的,并且不包含.first属性设置器。@Rob W当它执行并且不包含第一个属性时,如果您单击JSLint按钮,它仍然显示错误。它在Firefox 7.0.1中没有抱怨。它在哪个浏览器中抱怨?我只在Chrome 14中重现了此错误,而不是在Firefox 3.6.23.Yep中,看:这怎么会是一个bug?这正是JSLint声称要做的。@Jere否,正确的错误报告应该是将“var”声明移到函数顶部,而不是不能设置未定义的“first”属性。好的,同意错误措辞是错误的,只是不应该发生错误。是的,请看:这是一个错误吗?这正是JSLint声称要做的。@Jere否,正确的错误报告应该是将“var”声明移到函数顶部,而不是不能设置未定义的“first”属性。好的,同意错误措辞是错误的,只是不应该发生错误。+1这是一种广泛接受的做法吗?我知道JS中的变量有函数作用域,但这对我来说仍然很奇怪。使用var关键字当然非常重要,因为你通常不想进入全局作用域。至于将所有var声明放在首位,这是个人的选择,JSLint显然认为这是一个好主意。识别一个函数中的所有局部变量可能更容易,但对我来说这太傻了。我更希望在需要时声明变量,接近相关代码。特别是对于循环变量。。。看到变量i对任何人都没有任何好处;在函数的顶部。+1这是一种广泛接受的做法吗?我知道JS中的变量有函数作用域,但这对我来说仍然很奇怪。使用var关键字当然非常重要,因为你通常不想进入全局作用域。至于将所有var声明放在首位,这是个人的选择,JSLint显然认为这是一个好主意。识别一个函数中的所有局部变量可能更容易,但对我来说这太傻了。我更希望在需要时声明变量,接近相关代码。特别是对于循环变量。。。看到变量i对任何人都没有任何好处;在函数的顶部。