學習JS在這裏,我對這個代碼運行的JSLint:在使用它們之前,我是否應該在JavaScript中真正聲明所有變量?
/*jslint devel: true*/
function Animal(n) {
"use strict";
this.name = n;
this.prop = "a";
}
var a = new Animal("duppa");
for (v in a) {
if (a.hasOwnProperty(v)) {
console.log("property:" + v);
}
}
我得到:
jslint:test2.js:11:6:'v' was used before it was defined.
jslint:test2.js:11:8:Cannot read property "kind" from undefined
jslint: ignored 0 errors.
顯然,它抱怨說,我沒有宣佈v
前面:
/*jslint devel: true*/
function Animal(n) {
"use strict";
this.name = n;
this.prop = "a";
}
var a = new Animal("duppa");
var v;
for (v in a) {
if (a.hasOwnProperty(v)) {
console.log("property:" + v);
}
}
這關閉JSLint,但它真的有必要嗎?總的來說,我試圖遵循良好的習慣,但是這對JS來說是非常必要的嗎?例如。 Python沒有這些東西(for x in range(10)...
等)幸福地生活。
可能的重複[何時使用var in Javascript](http://stackoverflow.com/questions/5398766/when-to-use-var-in-javascript) –
Python不是JavaScript,所以是的,這是必要的。你也可以爲'(var v in a){...}' – 0x499602D2
@ 0x499602D2:這就是我最初做的,然後JSLint抱怨'jslint:test2.js:11:6:將'var'聲明移動到函數的頂部。 jslint:test2.js:11:6:無法讀取屬性「行」從未定義的' – LetMeSOThat4U