有序函数defenitions |优点

时间:2012-08-20 21:42:05

标签: javascript

如果无序定义函数,Jslint将调出错误。

显然jslint很严格,但我想知道将函数整理好是否有任何好处。

我的意思是在他们被召唤之前定义它们。

3 个答案:

答案 0 :(得分:2)

函数定义(和var语句)被提升到其闭包的顶部。换句话说,代码的执行顺序与您编写的顺序不同。

现在,没有什么比在行末尾的;更加“错误”,但jsLint旨在测试代码的人类 - 可读性。跳转不是人类可读的,所以它被认为是无效的。

答案 1 :(得分:1)

取决于

这将成功:

var x = y();

function y() { return 9; }

但这会失败:

var x = y();

var y = function() { return 9; };

当解释第一个脚本时,它将看到function y并将在整个范围内使该功能可用(在该示例中为全局范围)。

而对于第二个示例,函数被分配给y。就像任何其他变量一样,顺序很重要。

答案 2 :(得分:1)

如果在调用函数之前定义函数,则代码可以由一个传递编译器处理,否则,您需要一个多传递编译器(通常较慢)。

也许有一些通过JavaScript编译器(但是,我不知道)。

我一直认为JSLint会显示错误,因为它希望确保您的代码能够在一次成功编译器中成功运行