1,把var申明的变量提升到当前作用域的最前面
console.log(num);
var num=10;
//相当于
var num;
console.log(num);
num=100;
//得不到10的结果;
2,把函数声明提升到当前作用域的最前面
test();
function test(){
console.log('哈哈');
}
//相当于
function test(){
console.log('哈哈');
}
test();
fm();
var fm=function(){
console.log('哈哈');
}
//相当于
var fm;
fm();
fm=function()
{
console.log('哈哈');
}
得不出结果
3,如果函数同名后者会覆盖前者
test();
function test()
{
console.log('第一个')
}
function test()
{
console.log('第二个')
}
4,如果var声明的和函数同名,函数优先
console.log(test);
var test=12;
//此函数被调用
function test()
{ console.log('帅');
}