JSLint有一些有趣的消息,比如当您使用eval
语句时的eval is evil.
以及比较两个文字(例如,文本)时的Weird relation.
。 1 == 2
。你怎么能触发“这到底是什么?” JSLint消息?
我一直在寻找通过JSLint messages的名单,并注意到这一个在列表的底部:
是什么东西呢?
我通过JSLint source看了一下,发现这样的代码:
if (stack.length === 0) {
error("What the hell is this?", nexttoken);
}
我一直在尝试了一段时间,不成功,写触发此代码。我没有读到关于JSLint谈论这个错误消息,它为什么存在或导致它的原因。我简单地检查了代码,但我无法真正了解堆栈是什么,它是如何填充的或可能导致它为空。
有人可以编写一个代码示例,导致JSLint尖叫What the hell is this?
或解释什么可以防止这种情况发生?
我没有这样的代码......但检查您发布的代码片段我怀疑JSLint使用内部堆栈与一些(预定义的?)大小,并且只显示此消息时,该堆栈是空的,它不应该检查XML)......此消息只发生在JSLint错误导致空栈而其余的函数相信存在嵌套的标记来处理的情况下... – Yahia
也许这是一个错误,应该/可以从来没有发生......只是一个想法。 –
我想说这是一个很好的机会,它是在开发该工具时为内部使用而编写的。如果它遇到了一些没有预料到的情况,它会输出该消息,开发人员会进一步调查。只是一个猜测。 – riwalk