通过函数声明语句声明的函数,可以在进行声明的代码行之前就对其调用.下面的例子是在函数的作用域内进行,不过对于全局作用域情况也相同的.
function doit (){
fn(); //在声明函数fn之前对其进行调用
function fn(){ print('called') }
}
// 函数调用
doit();
>called
在通过匿名函数表达式进行定义的情况结果将会不同.下面的代码结果上与上面的类似,却是错误的.
function doit (){
fn(); //在声明函数fn之前对其进行调用
var fn = function { print('called') }
}
// 函数调用
doit();
>//Uncaught SyntaxError: Unexpected token {