fn();
var fn = function() {
console.log(2);
}
function fn() {
console.log(1);
}
fn();
上面代码中的打印结果是1,2
打印1可以理解,就是函数声明式可以提升,而函数表达式无法提升,所以调用的是第二个fn(),但是第二个打印我就无法理解了,问什么调用的是第一个定义的fn()呢。
fn();
var fn = function() {
console.log(2);
}
function fn() {
console.log(1);
}
fn();
上面代码中的打印结果是1,2
打印1可以理解,就是函数声明式可以提升,而函数表达式无法提升,所以调用的是第二个fn(),但是第二个打印我就无法理解了,问什么调用的是第一个定义的fn()呢。
因为var 定义的元素存在声明提升,所以代码翻译过来长这样