数据变量声明提前
var scope=”golbal”;
function f(){
console.log(scope);///输出undefined
var scope=”local”;
console.log(scope);//输出local
}
声明提前但不是赋值提前,也就是说上面的代码相当于
var scope=”golbal”;
function f(){
var scope;
console.log(scope);///输出undefined
scope=”local”;
console.log(scope);//输出local
}
函数声明提前
函数有两种定义方式
1、var f=function( ) { }
2、function f( ) { }
前一种方式和数据变量一样,只有变量声明提前了,变量初始化仍然在原来位置,而后面的函数声明方式会将函数名称和函数体都提前。所以后面的函数声明方式可以在声明前调用。而且函数声明语句创建的变量也是可重写的。