我有一个几行长的脚本,我有很多这样的标志类型
var counter = 0;
var carFlags = {
Audio : counter++ ,
Bentley : counter++ ,
Chrysler : counter++
Datsun : counter++
...
};
稍后如果我以同样的方式创建一个新的标志对象
var counter = 0;
var nameFlags = {
Ashley : counter++ ,
Bronwyn : counter++ ,
Catherine : counter++
DakotaFanning : counter++
...
};
它提示计数器被用作更大语句的一部分,但我认为它在这里是完全可以接受的。但是,我在这里使用了两次计数器,所以它警告 redeclaration of var counter
。我可以将 var counter
移动到页面顶部,但这可能会使 counter
的用途变得不太清楚。多次使用 var 有什么真正的问题吗?我有一个 delete counter
语句,但它什么也没做。我应该将其更改为 delete window.counter
吗?
最佳答案
我不太确定你的范围,但如果它是全局范围,那么 delete counter
确实什么都不做。也没有必要 delete window.counter
无论如何都是一样的(如果我们在全局范围内的浏览器环境中)。
如果您希望重新使用该变量 - 一个简单的赋值即可:
counter = 0
我相信,JSLint 提示的原因是警告您,您可能打算重新使用计数器并意外键入 var
(发生在我身上不止一次)。
在同一范围内声明同一个变量两次绝对没有坏处(除了稍微增加用户浏览器在加载页面时必须下载的 JS 文件的大小)。
编辑:
当然还有一个问题,为什么要使用相同的名称...
关于javascript - JSlint 警告 `redeclaration of var counter` 是否必要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7933848/