javascript函数的提升
1、
function foo(){
alert('global foo');
}
function bar(){
alert('blobal bar');
}
function hoistMe(){
console.log(typeof foo);//"function"
console.log(typeof bar);//"undefined"
foo();//输出local foo
bar();//输出TypeError: bar is not a function
//函数声明
function foo(){
alert('local foo');
}
//函数表达式
//仅变量‘bar’被提升
//函数实现并未被提升
var bar = function(){
alert('local bar');
}
}
hoistMe();
存在于hoistMe()函数中的foo和bar移动到了顶部,从而覆盖了全局foo和bar函数。
* foo() 的定义被提升到了顶部且能正常运行。
* bar()的定义并没有提升,公有它的声明被提升了。