变量的声明提前:
(1)使用var关键字声明的变量,会在所有代码执行之前被声明,但是!!!!不会被赋值(诡异之处)。
(2)如果声明变量时,不使用var关键字,则变量不会被声明提前。
<script>
console.log(a);//结果是undefined
var a=10;//使用了var关键字声明了变量,a会被提前声明,但是不会被赋值
</script>
函数的提前声明:
(1)使用函数声明形式创建的函数function 函数(){}
它会在所有的代码执行之前就被创建,所以我们可以在函数声明之前就来调用函数。
(2)使用函数表达式创建的函数 var 函数名 function(){}
不会被声明提前,所以不能在声明前调用。
<script>
fun();//函数被声明提前了,所以可以在函数声明之前就调用
function fun(){
console.log("我是用函数声明形式创建的函数,我会被声明提前");
}
</script>