1.啥叫变量提升?
我们知道变量如果没定义就输出的话,就会报错not defined
如果是在定义语句的上面调用的话,就会输出undefined,为啥嘞?
这种情况就叫做变量提升,在定义语句上面调用变量的话,会假设在调用语句上面加了一句定义而未赋值的语句
当然我们知道,如果定义一个变量但没给他赋值的话,就会得到undefined,so,变量提升的结果就是undefined
对于var 而言,变量提升不只限于定义变量的时候,定义函数的时候也支持变量提升
我们知道有两种定义函数的方式,一种是用function关键字声明定义,一种是函数直接量的方式,第一种方式,你随便在哪调用都行,可以在定义之前调用。第二种方式的话,你就不能在定义之前调用,会报错说函数未定义,输出那个变量的话就是undefined,原理就是变量提升