js提升机制 (Hoisting)
Hoisting指的是js在编译阶段会将变量和函数声明放入内存中,不改变编码中键入的位置
1 变量提升(提升的只是声明,赋值并不会提升)
(1) 正常情况
alert(test); //报错
(2) 变量提升
alert(test); // undefined,因为提升的只是函数的声明
var test = 3;
2 函数提升
(1)
test(); //abc
function test(){
console.log("abc");
}
(2)
test1(); // test1 is not function,提升只是test1的声明,这等价于先声明一个变量,再把一个函数赋给该变量
var test1 = function(){ var test1 = function ab(){ //这种情况函数ab并不存在
console.log("abc"); 或 console.log("abc");
} }

浙公网安备 33010602011771号