JSLint:在定义错误之前使用函数

我使用JSLint来验证我的大部分外部Javascript文件,但是我得到的最大错误是来自函数在定义之前使用的。

这真的是我应该担心的问题吗?

看来Firefox,IE7和Chrome都不在乎。 根据JSLint的说法,像常用的init() (我经常使用)的函数通常会粘在顶部,因为这对我来说很有意义(我喜欢假装它类似于main() ),它需要推到底部文件。


如果使用function关键字声明函数,则可以在声明它们之前使用它们。 但是,如果通过其他方法(例如使用函数表达式或Function构造函数)声明函数,则必须在使用函数之前声明该函数。 有关更多信息,请参阅Mozilla开发者网络上的此页面。

假设你用function关键字声明了所有的函数,我认为它变成了一个编程风格的问题。 就个人而言,我更喜欢用看起来合乎逻辑的方式来构造函数,并尽可能使代码尽可能易读。 例如,像你一样,我会在顶部放置一个init函数,因为它是从一切开始的地方。


由于这是最高评分的谷歌命中,其他人可能在jslint工具中首先看不到它,所以有一个选项叫做“允许错误定义”,允许你隐藏这种类型的错误。

/*jslint latedef:false*/

如果你使用的是jshint,你可以设置latedefnofunc ,它只会忽略延迟函数定义。

文档 - http://www.jshint.com/docs/options/#latedef

用法示例:

/* jshint latedef:nofunc */

noop();

function noop() {}

希望这可以帮助。

链接地址: http://www.djcxy.com/p/19051.html

上一篇: JSLint: Using a function before it's defined error

下一篇: Flat JSON to hierarchy/tree without ID