JS中的提升

2018-03-21  本文已影响0人  木易free

JS中包含两种提升,变量提升和函数提升。


变量提升

变量提升只能是var或者function声明的变量或者函数,let,const声明的不存在提升的说法。

顾名思义就是把下面的东西提升到上面。在函数域里定义一个和外部一样名称的变量时,只会取到该函数域,在赋值以前的输出为undefined。

在函数域内的if,for,switch语句中的变量无论条件是否满足都会得到提升,能够赋值与否要看是否满足条件。因此此处输出为2;如果!a变为a,则输出为undefined.


函数提升

定义函数有两种方式:函数声明和函数表达式。函数声明的函数才会提升函数(提升的其实是函数的引用,在声明之前可以调用),函数表达式提升的其实只是一个变量(调用会报错,因为只是一个变量)。

上一篇 下一篇

猜你喜欢

热点阅读