[javascript] JSLint:在定義錯誤之前使用函數


Answers

由於這是最高評分的谷歌命中,其他人可能在jslint工具中首先看不到它,所以有一個選項叫做“允許錯誤定義”,允許你隱藏這種類型的錯誤。

/*jslint latedef:false*/
Question

我使用JSLint來驗證我的大部分外部Javascript文件,但是我得到的最大錯誤是來自函數在定義之前使用的。

這真的是我應該擔心的問題嗎?

看來Firefox,IE7和Chrome都不在乎。 根據JSLint的說法,像常用的init() (我經常使用)的函數通常會粘在頂部,因為這對我來說很有意義(我喜歡假裝它類似於main() ),它需要推到底部文件。




從jslint的網站( http://www.jslint.com/lint.html ),您可以閱讀關於一個/ * global * /指令,該指令允許您設置假定在別處聲明的變量。

這裡是一個例子(把它放在文件的頂部):

/*global var1,var2,var3,var4,var5*/

真實的:假的實際上並不需要我的經驗,但它看起來像我從網站上閱讀的內容推薦的。

確保最初的全局語句與/*位於同一行,否則會中斷。




在你的.jshintrc文件中,設置:

  "latedef": "nofunc",



您始終可以在頂部聲明違規函數

例如:var init;

....但是當你進一步得到真正的定義時,你將不得不刪除“var”:

init = function(){};




Links