原文:https://github.com/mqyqingfeng/Blog/issues/4
var foo = function () {
console.log('foo1');
}
foo(); // foo1
var foo = function () {
console.log('foo2');
}
foo(); // foo2
打印出foo1与foo2不是因为变量提升,而是因为var foo = function (){}属于函数表达式。在js引擎预编译后不会被提升(只有var变量声明和函数声明语句才会被提升),所以就会按照顺序来执行,打印foo1,foo2。
网友评论