JSLint - 由外部脚本文件引起的“var not defined”错误

时间:2012-01-18 11:31:59

标签: javascript jslint jshint

我在我们项目中的一些javascript文件中尝试使用JSLint,并遇到了以下几个错误:

JS Lint: '<var name>' is not defined

问题是变量是在其他地方引用的单独文件中定义的。例如HTML页面有global.js和pageSpecific.js

我知道使用语法

/* global varName */ 

告诉JSLint肯定这个变量确实存在但是在这种情况下这是不理想的,因为导致这些错误的不同变量的数量(在每个页面的顶部会有这些全局变量的行)。我也不想忽略这个错误,毕竟可能存在需要注意的“真正的”未定义错误。

我的感觉是,有一个我不知道的JSLint解决方案,或者更可能的是,这表明JS在这个项目中的结构存在问题? 'global.js'文件(这种类型)是不好的做法吗?

意见/反馈意见。

2 个答案:

答案 0 :(得分:3)

这表明JS的结构存在问题。全球应保持在最低限度。真正需要全局可用的东西都应该挂起一个全局对象(这种技术在JS世界中被称为命名空间)。

答案 1 :(得分:0)

您还可以将一个全局变量列表传递给用于调用JSLint / JSHint的命令,但更大的问题是您不应该有那么多变量污染全局范围。