Loading

变量声明提前与函数声明提前

- 变量的声明提前
- 在全局作用域中,使用var关键字声明的变量会在所有的代码执行之前被声明,但是不会赋值。
所以我们可以在变量声明前使用变量。但是不使用var关键字声明的变量不会被声明提前。
- 在函数作用域中,也具有该特性,使用var关键字声明的变量会在函数所有的代码执行前被声明,
如果没有使用var关键字声明变量,则变量会变成全局变量

- 函数的声明提前
- 在全局作用域中,使用函数声明创建的函数(function fun(){}),会在所有的代码执行之前被创建,
也就是我们可以在函数声明前去调用函数,但是使用函数表达式(var fun = function(){})创建的函数没有该特性
- 在函数作用域中,使用函数声明创建的函数,会在所有的函数中的代码执行之前就被创建好了。

例子

1.不管用不用var声明的变量都会输出:

 

 2.用var修饰的变量会进行变量声明提升,但是不会赋值;而不用var修饰的变量不会进行变量提升

 

 

 

 3.function fun(){},会在所有的代码执行之前被创建,而var fun = function(){}创建的函数没有该特性

 

 

 

 4.

 

 5.

.

 

 总结:管它什么鬼的变量提升函数提升,只要先定义,后面再执行就好啦!!

posted @ 2021-02-20 17:30  兜里还剩五块出头  阅读(131)  评论(0编辑  收藏  举报