<script>
var c = 1;
function add(){
var a = 0;
console.log(a);//0
console.log(c);//undefined
var c = 1;
}
add();
//相当于
function add(){
var a = 0;
var c;
console.log(a);
console.log(c); //所以是未定义
c = 1;
}
</script>
变量提升:函数执行之前,会先将函数中所有的变量,挪到最前面去声明。
函数名提升:script中脚本,在执行之前,会先把脚本中的所有的函数先进行编译解析,然后执行普通的js代码。