想问问大神们JavaScript中函数的调用的位置需要放在函数定义位置的后边吗?
这跟函数定义的方式有关:
如果是 以函数声明的方式定义函数,
则函数在代码块执行就已经被初始化了,即可在函数定义前调用函数。(具体可了解下 JS的Lexical Environment)。
如果是 以函数表达式的方式定义函数,则必须在函数声明后 才可以调用函数。
这个要从js的语法说起
function foo() {
...
}
这种方式其实是相当于
window.foo = function() {
...
};
JS引擎会先扫描整个JS代码,把所有全局变量都绑定到window对象上
因此你如果写
function bar() {
foo();
}
function foo() {
...
}
这个是没问题的。
还有一种情况。你写
function bar() {
foo();
};
var foo = function() {
...
};
这种情况下,bar是不能调用foo的。
js中有函数声明提升的特性,函数调用的位置不是必须要放在函数定义位置的后边
不需要,页面加载时会直接加载所有的js,在需要的时候才进行调用