2013-05-03 36 views
3

我在Sublime Text 2中安裝了JSLint Plugin。但是我不同意JSLint特別聲明的一些規則來聲明循環中的變量。在Sublime Text 2中禁用或覆蓋JSLint選項

Move 'var' declarations to the top of the function. 
    for (var i = 0; i < 100; i++) { // Line 12, Pos 10 

我的問題是我如何可以覆蓋或崇高文本2

+0

一些插件允許您指定要忽略的代碼/模式。您最好的選擇是查看插件中的自述文件。如果它不會爲插件發出功能請求,或者找到一個允許您插入的功能請求。我做了一個快速搜索,似乎有兩個JSLint插件,所以確保你查找正確的回購。 – skuroda 2013-05-03 18:41:34

回答

3

禁用的JSLint此規則如果您有Darren DeRidder's plugin(有兩個JSLint的插件崇高文本),你做this

您可以設置任何的JSLint的選項下偏好 - >包 設置 - >的JSLint - >高級設置建。請參閱 http://www.jslint.com/lint.html#options以獲取 JSLint中的選項列表。

現在,您將很難禁用只是循環內的var聲明。您可以將varsoption設置爲true,但是然後JSLint將允許您在頁面上的任何位置擁有儘可能多的var聲明。這可能是一種誤導性的做法,因爲JavaScript有些人稱之爲Function Scope"hoists" declarations to the top of their scope

編輯:哎呀,我撒謊了。 vars只允許多個var聲明語句,但它們仍然必須位於該函數的頂部。它不僅可以讓你做到這一點:

function fnTest() { 
    var i; 
    var j; // Oh boy! Two var statements at the TOP of the same function 
    for (i = 0; i < 100; i++) { 
    j++; 
    } 
} 

,而不是

function fnTest() { 
    var j; 
    for (var i = 0; i < 100; i++) { // still can't do this. 
    j++; 
    } 
} 

雖然我很驚訝克羅克福德不會讓你這樣做,我認爲你是out of luck,並且必須使用JSHint相反(似乎有一個崇高的插件for JSHint here,雖然我沒有用過它)。

+0

使用JSHint +1,它是最乾淨的解決方案。 JSHint包含在SublimeLinter插件中。 – 2013-05-04 06:09:00

+0

它不希望你在裏面聲明變量的原因是因爲Javascript'提升'函數。這不是你的期望,所以它試圖讓你保證你看到JS會做什麼。 – jQwierdy 2015-08-20 14:59:16

0

@chanHXC用var聲明警告跳過崇高-JSLint的新的默認選項。