JSLint是一個JavaScript驗證工具(非開源),可以掃描JavaScript源代碼來查找問題。如果JSLint發現一 個問題,JSLint就會顯示描述這個問題的消息,并指出錯誤在源代碼中的大致位置。有些編碼風格約定可能導致未預見的行為或錯誤,JSLint除了能指 出這些不合理的約定,還能標志出結構方面的問題。盡管JSLint不能保證邏輯一定正確,但確實有助于發現錯誤,這些錯誤很可能導致瀏覽器的 JavaScript引擎拋出錯誤。

JSLint定義了一組編碼約定,這比ECMA定義的語言更為嚴格。這些編碼約定汲取了多年來的豐富編碼經驗,并以一條年代久遠的編程原則 作為宗旨:能做并不意味著應該做。JSLint會對它認為有的編碼實踐加標志,另外還會指出哪些是明顯的錯誤,從而促使你養成好的 JavaScript編碼習慣。

JSLint可能會把一些結構方面的錯誤標志為可疑的編碼實踐,以下列出了其中一部分(完整的列表可以參考JSLint的文檔)。

    JSLint要求所有代碼行都以分號結束。盡管JavaScript確實允許將換行符作為行結束符,但一般認為這種做法是不明確的,而且是不好的編碼風格。

    使用if和for的語句必須使用大括號把語句塊括起來。

    不同于其他編程語言,在JavaScript中,塊不會作為變量的作用域。JavaScript只支持函數級作用域。因此,JSLint只接受作為function、if、switch、while、for、do和try語句一部分的塊,其他的塊都會標志為錯誤。

    var只能聲明一次,而且在使用之前必須聲明。

    JSLint會把出現在return、break、continue或throw語句后面的代碼標志為不可達的代碼。這些語句后面必須緊跟一個結束大括號。

    對于JavaScript來說,JSLint是一個非常好的工具,因為它會教你一些好的JavaScript編碼實踐。由于JSLint能 把可能導致邏輯錯誤或其他未預見行為的部分標出來,因此可以減少調試時間。如果你調試一段JavaScript代碼時遇到困難,可以試試JSLint。