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