Fork me on GitHub

JSLint Error Explanations

JSLint will hurt your feelings. It's time to make them better!


Redefinition of '{a}'

什么时候会产生这个错误?

若JSHint遇到声明的变量名和内建的原生对象名称相同,就会抛出"Redefinition of '{a}'"错误。在下面这个例子中我们尝试着用String这个名称来声明一个对象:

为什么会产生这个错误?

这个错误是为了强调潜在的有问题的代码。你的代码如果不修改,可能在运行时不会出现错误,但是这会让其他人感到十分困惑,特别是那些乍眼一看的人们,并且这很可能会对第三方的脚本造成影响。

当然,你完全可以重新对任意的内置函数进行赋值或者重载,但是对于这种操作是有一定限制的。JSHint完全禁止进行这种操作,并且不提供任何参数去允许之。

"只读函数"的列表如下:

Array Boolean Date decodeURI decodeURIComponent encodeURI encodeURIComponent
Error eval EvalError Function hasOwnProperty isFinite isNaN
JSON Map Math NaN Number Object parseInt
parseFloat RangeError ReferenceError RegExp Set String SyntaxError
TypeError URIError WeakMap

参见"Read only"错误以查看相关的更多的信息。注意JSLint定义了这个错误但是实际上从来没有使用过它。

在JSHint1.0.0及以上版本中,你可以使用一种特殊的语法选项. 这个警告的标示符是W079. 这也就意味着你可以通过/*jshint -W079 */让JSHint不报告这个警告。


comments powered by Disqus