有只小跳蛙
2019-11-22 10:53:51
原始問題:當(dāng)我的JavaScript調(diào)用的功能在頁面下方而不是在其下方定義時,JSHint會抱怨。但是,我的頁面是用于游戲的,在下載完所有內(nèi)容之前,不會調(diào)用任何函數(shù)。那么為什么訂單功能出現(xiàn)在我的代碼中很重要?編輯:我想我可能已經(jīng)找到了答案。http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting我在里面吟??磥砦倚枰硪惶斓臅r間才能重新排序六千行代碼。使用javascript的學(xué)習(xí)曲線一點(diǎn)也不陡峭,但是非常糟糕。
3 回答

慕碼人2483693
TA貢獻(xiàn)1860條經(jīng)驗 獲得超9個贊
主要原因可能是JSLint僅對文件進(jìn)行一次傳遞,因此它不知道您將定義這樣的函數(shù)。
如果使用函數(shù)語句語法
function foo(){ ... }
實(shí)際上,您在聲明函數(shù)的位置根本沒有區(qū)別(它的行為始終就像聲明是在開頭一樣)。
另一方面,如果您將函數(shù)設(shè)置為常規(guī)變量
var foo = function() { ... };
您必須保證在初始化之前不會調(diào)用它(這實(shí)際上可能是錯誤的來源)。
由于重新排序大量代碼很復(fù)雜,并且本身可能是錯誤的來源,因此建議您尋找解決方法。我敢肯定,您可以事先告訴JSLint全局變量的名稱,這樣它就不會抱怨未聲明的內(nèi)容。
在文件的開頭添加評論
/*globals foo1 foo2 foo3*/
或者,您可以在此處使用文本框。(我還認(rèn)為,如果您可以將其傳遞給內(nèi)部jslint函數(shù),則可以將其傳遞給內(nèi)部jslint函數(shù)。)
添加回答
舉報
0/150
提交
取消