javascript的预编译
一、先预定义变量,再预定义函数
二、变量的预编译只作声明,不作初始化,初始化在执行时
三、function语句定义的函数,不仅声明了函数名,而且函数体也进行了处理
四、匿名函数不会预编译
function f(){ // 声明函数f
return 1;
}
alert(f()); // 返回1
var f = function(){ // 定义匿名函数f
return 2;
}
alert(f()); // 返回2
先预定义了变量f,然后同名函数f()覆盖了变量f,所以第一次输出1;变量的预编译
var f = function(){ // 定义匿名函数f
return 1;
}
alert(f()); // 返回1
function f(){ // 声明函数f
return 2;
}
alert(f()); // 返回1
先预定义了变量f,然后同名函数f()覆盖了变量f.