我在我们项目中的一些javascript文件中尝试使用JSLint,并遇到了以下几个错误:
JS Lint: '<var name>' is not defined
问题是变量是在其他地方引用的单独文件中定义的。例如HTML页面有global.js和pageSpecific.js
我知道使用语法
/* global varName */
告诉JSLint肯定这个变量确实存在但是在这种情况下这是不理想的,因为导致这些错误的不同变量的数量(在每个页面的顶部会有这些全局变量的行)。我也不想忽略这个错误,毕竟可能存在需要注意的“真正的”未定义错误。
我的感觉是,有一个我不知道的JSLint解决方案,或者更可能的是,这表明JS在这个项目中的结构存在问题? 'global.js'文件(这种类型)是不好的做法吗?
意见/反馈意见。
答案 0 :(得分:3)
这表明JS的结构存在问题。全球应保持在最低限度。真正需要全局可用的东西都应该挂起一个全局对象(这种技术在JS世界中被称为命名空间)。
答案 1 :(得分:0)
您还可以将一个全局变量列表传递给用于调用JSLint / JSHint的命令,但更大的问题是您不应该有那么多变量污染全局范围。