函数提升比变量提升优先级高
function t1(age) {
console.log(age);
var age = 27;
console.log(age);
function age() {}
console.log(age);
}
t1(3);
分析完成后:
function t1(age) {
var age= function () {}
console.log(age);
var age = 27;
console.log(age);
console.log(age);
}
t1(3);
1>变量提升
变量提升即将变量声明提升到它所在作用域的最开始的部分。
console.log(global); // undefined
var global = 'global';
console.log(global); // global
2>函数提升
js中创建函数有两种方式:函数声明和函数表达式。只有函数声明有提升
console.log(f1); // function f1() {}
console.log(f2); // undefined
function f1() {}
var f2 = function() {}
function f1() {} // 函数提升,整个代码块提升到文件的最开始
console.log(f1);
console.log(f2);
var f2 = function() {}