作用域
函数声明和变量声明都会被提升。但是,函数声明会覆盖变量声明
var a;
function a(){};
console.log(a);
如果变量存在赋值操作,则最终的值为变量的值
var a=1;
function a(){}
console.log(a);//1
解析如下
var a;
function a(){};
console.log(a);//'function a(){}'
a = 1;
console.log(a);//1
[注意]变量的重复声明是无用的,但函数的重复声明会覆盖前面的声明(无论是变量还是函数声明)
只要思想不滑坡,办法总比困难多!