javascript - JSlint 警告 `redeclaration of var counter` 是否必要?

标签 javascript jslint

我有一个几行长的脚本,我有很多这样的标志类型

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/

相关文章:

javascript - 尝试使用盒子制作渐变

javascript - 在全局范围内预定义变量有什么优点?

javascript - 自调用函数、Resharper 6.1 和 JS Lint - 可能对两者都有效?

javascript - 使用 $(this) 获取被点击的元素

javascript - 检查输入长度

javascript - JSFIDDLE 上没有错误,但站点和 jslint 上有错误

javascript - 如何在Jslint中纠正 "Insecure ' .'. error"

javascript - JSLint 期望 'new' 而不是看到 '.'

javascript - 如何使用云存储分段上传音乐/视频(适用于 Laravel)?

javascript - 如何保存应用程序的登录次数?(nodejs,JS,mongodb)