1. 函数提升
函数声明方式:函数声明,函数字面量,构造函数
只有函数声明形式才能被提升!!!!!
//函数声明
function myTest1(){
func();
function func(){
console.log("我可以被提升");
}
}
myTest1();
//函数表达式
function myTest2(){
func();
var func = function(){
console.log("我不能被提升");
}
}
myTest2();
//构造函数也不能被提升
2. 变量提升(variable hoisting)
var name="haha";
2 function changeName(){
3 console.log(name);
4 var name="xixi";
5 }
6 changeName();//undefined
7 console.log(name);//haha
变量提升只提升声明部分,值不提升