【问题标题】:How can you trigger the "What the hell is this?" JSLint message?你怎么能触发“这到底是什么?” JSLint 消息?
【发布时间】:2011-12-05 12:08:08
【问题描述】:

JSLint 有一些有趣的消息,例如当您使用 eval 语句时的 eval is evil. 和比较两个文字时的 Weird relation.,例如1 == 2.

我正在查看JSLint messages 的列表,并注意到列表底部的这个:

这是什么鬼?

我查看了JSLint source,发现了这段代码:

if (stack.length === 0) {
    error("What the hell is this?", nexttoken);
}

我一直在尝试编写触发它的代码,但没有成功。我所读过的关于 JSLint 的任何内容都没有提及此错误消息、它存在的原因或导致它的原因。我已经简单地检查了代码,但我无法真正理解堆栈是什么,它是如何填充的,或者是什么导致它为空。

有人可以编写一个代码示例,让 JSLint 尖叫What the hell is this? 或解释是什么阻止了这种情况发生吗?

【问题讨论】:

  • 我没有这样的代码...但是检查您发布的 sn-p 我怀疑 JSLint 使用了具有某些(预定义?)大小的内部堆栈,并且仅在该堆栈为不应该为空的地方(检查 XML)...仅当 JSLint 错误导致空堆栈而函数的其余部分认为有嵌套令牌要处理时才会出现此消息...
  • 也许这是一个不应该/永远不会发生的错误......只是一个想法。
  • 我想说它很有可能是在开发工具时为内部使用而编写的。如果它遇到了一些它没有预料到的情况,它会输出该消息,开发人员将进一步调查。只是猜测。
  • 天哪。编写这样代码的人如何告诉如何编写好的代码? :(
  • @pst jshint.com ;)

标签: javascript jslint


【解决方案1】:

它看起来很像"can't happen" checkdefensive programming 的一种形式)。如果是这样,实际上可能没有任何方法可以触发它。

【讨论】:

  • 如果这是真的,我会非常失望。我一生都梦想着让 JSLint 直接侮辱我的代码。
  • @Peter 至少您将始终让 Visual Studio 将开发人员称为工具。
【解决方案2】:

message listsource code 中似乎不再存在错误消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-19
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 2013-04-15
    相关资源
    最近更新 更多