【发布时间】:2013-07-03 08:55:58
【问题描述】:
我有一个 javascript 变量,在 eclipse 中给了我以下警告: 全局变量索引没有显式声明。
var inputs, index, inputLenght;
inputs = document.getElementsByTagName('p');
inputLength =inputs.length;
for (index = 0; index < inputLength; ++index) {
// some stuf to do
}
当我这样做时,警告消失了
for (var index = 0; index < inputLength; ++index) {
// some stuf to do
}
我想了解为什么将其定义为全局变量会发出警告?
【问题讨论】:
-
是变量名
index前面的var。 Eclipse 是说没有显式声明,在使用变量之前用var声明变量是一种很好的行为。然而,JavaScript 会在您使用它时创建变量,但例如,当您输入错误indxe时会产生问题,因为它不会抱怨,只会创建一个具有该名称的新变量并且行为异常 -
在 Webstorm 中我没有收到任何警告。一定只是一个 Eclipse 的东西
-
Exlipse 表示不初始化变量,只是对代码风格的警告。顺便说一句,你有错字 inputLenght**/inputLengb>th**
-
但是在for循环之外声明变量不是更好吗?
-
inputs当然必须在外面声明;长度预定义是“微优化”。索引最好在为其设计的循环部分中定义。
标签: javascript global-variables warnings