JSLint:在定义错误之前使用函数
我使用JSLint来验证我的大部分外部Javascript文件,但是我得到的最大错误是来自函数在定义之前使用的。
这真的是我应该担心的问题吗?
看来Firefox,IE7和Chrome都不在乎。 根据JSLint的说法,像常用的init()
(我经常使用)的函数通常会粘在顶部,因为这对我来说很有意义(我喜欢假装它类似于main()
),它需要推到底部文件。
如果使用function
关键字声明函数,则可以在声明它们之前使用它们。 但是,如果通过其他方法(例如使用函数表达式或Function
构造函数)声明函数,则必须在使用函数之前声明该函数。 有关更多信息,请参阅Mozilla开发者网络上的此页面。
假设你用function
关键字声明了所有的函数,我认为它变成了一个编程风格的问题。 就个人而言,我更喜欢用看起来合乎逻辑的方式来构造函数,并尽可能使代码尽可能易读。 例如,像你一样,我会在顶部放置一个init
函数,因为它是从一切开始的地方。
由于这是最高评分的谷歌命中,其他人可能在jslint工具中首先看不到它,所以有一个选项叫做“允许错误定义”,允许你隐藏这种类型的错误。
/*jslint latedef:false*/
如果你使用的是jshint,你可以设置latedef
为nofunc
,它只会忽略延迟函数定义。
文档 - http://www.jshint.com/docs/options/#latedef
用法示例:
/* jshint latedef:nofunc */
noop();
function noop() {}
希望这可以帮助。
链接地址: http://www.djcxy.com/p/19051.html