我認爲你是對的 - jslint並沒有像這樣抱怨過。相反,它告訴你,你需要用ex
做點什麼,對吧?我會檢查github以後再查看和編輯它。 編輯:很棒[抓住你]! Crockford,JSLint的作者,added this on April 29th of this year圍繞着3444行。他在jslint的源代碼中使用了空的catch
塊,所以我猜他也必須給我們一些kludge。 ; ^)
JSLint的希望您與ignore
雜牌空catch
塊作爲變量名,這樣很明顯的人閱讀你的代碼,你故意的意思不要做你的catch
塊東西。正如Crockford says elsewhere,他認爲:「使用難以區分明顯錯誤的成語時,很難編寫正確的程序。」
1)ex
使用(沒關係)
所以(我猜你懂的),如果你寫的代碼和做一些與ex
,JSLint的不抱怨。
/*jslint browser: true, white:true, sloppy:true*/
var spam;
try {
spam = "spam";
} catch (ex) {
window.alert(ex);
}
2)ex
未使用的手段ignore
(好吧太)
所以,如果你意味着不要與ex
做什麼,他想要的代碼告訴你沒有搞砸人通過將該變量ignore
命名爲ex
等價物。
/*jslint browser: true, white:true, sloppy:true*/
var spam;
try {
spam = "spam";
} catch (ignore) {
}
3)ignore
使用(錯誤!)
所以,在典型的Crockfordian時尚,你現在無法使用ignore
和實際做的catch
塊的東西!
/*jslint browser: true, white:true, sloppy:true*/
var spam;
try {
spam = "spam";
} catch (ignore) {
window.alert(ignore);
}
這讓
Unexpected 'ignore'. } catch (ignore) {
又一個超明確的「不使代碼看起來像一個錯誤」,由克羅克福德的舉動。
(旁白:可能會很有趣,而你關於這個問題誠實地看看Why are empty catch blocks a bad idea,雖然ignore
可能是一個有用的約定,根據討論(我的意思是,它包括對空catch
塊飛碟雙向爭論!),我有點驚訝克羅克福德允許ignore
kludge,因爲上面的鏈接有很多像調用一些正則表達式「不安全」的感覺。)
哇!偉大的發現,和偉大的答案!非常感謝。我真的很想知道JSLint是否已經按照你所說的或者沒有提到的方式發生了變化,但是我沒有用過這麼長時間的try-catch聲明,我不確定。再次感謝那個偉大的答案和那個偉大的聯繫。 – HartleySan