Chr*_*s S 73 javascript jslint
我正在使用JSLint来验证我的大多数外部Javascript文件,但我得到的最大错误来自于在定义之前使用的函数.
这真的是我应该担心的问题吗?
看来Firefox,IE7和Chrome都不在乎.像JSLint 一样,流行的init()
(通常我经常使用的)函数通常会粘在顶部,因为这对我来说main()
是合理的(我喜欢假装它类似)将需要被推到文件的底部.
kon*_*tur 84
由于这是最受欢迎的google热门,其他人可能最初没有在jslint工具中看到它,因此有一个名为"Tolerate misordered definitions"的选项可以隐藏这种类型的错误.
/*jslint latedef:false*/
Run Code Online (Sandbox Code Playgroud)
Ste*_*son 69
如果使用function
关键字声明函数,则可以在声明它们之前使用它们.但是,如果通过其他方法声明函数(例如使用函数表达式或Function
构造函数),则必须在使用之前声明该函数.有关更多信息,请参阅Mozilla开发人员网络上的此页面.
假设您使用function
关键字声明所有函数,我认为它成为一个编程风格的问题.就个人而言,我更喜欢以一种看似合乎逻辑的方式构造我的函数,并使代码尽可能可读.例如,和你一样,我会init
在顶部放置一个函数,因为它就是从一切开始的地方.
Jan*_*lak 33
如果您正在使用jshint,则可以设置latedef
为nofunc
,这将仅忽略后期函数定义.
文档 - http://www.jshint.com/docs/options/#latedef
用法示例:
/* jshint latedef:nofunc */
noop();
function noop() {}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
sta*_*ton 11
从jslint的网站(http://www.jslint.com/lint.html),您可以阅读有关/*global*/指令的信息,该指令允许您设置假定在其他地方声明的变量.
这是一个例子(把它放在文件的顶部):
/*global var1,var2,var3,var4,var5*/
Run Code Online (Sandbox Code Playgroud)
:true:从我的经验中实际上并不需要false,但它看起来像是我在网站上看到的建议.
确保初始全局语句与其在同一行/*
,否则它会中断.
归档时间: |
|
查看次数: |
41689 次 |
最近记录: |