变量提升和函数提升
一、变量提升
变量提升即将变量声明提升到它所在作用域的最开始的部分。
通过var定义(声明)的变量,在定义语句之前就可以访问到;
值:undefined;
二、函数提升
js中创建函数有两种方式:函数声明式和函数表达式
1、函数声明提升
js在执行之前,会把foo函数提升到最前面,所以我们在fun函数定义之前就可以使用fun函数。
2、函数表达式提升
此种声明方式我们可以理解为一个普通变量的提升,在js代码执行之前会把fun提升带最前面,在函数赋值之前,fun是undefined,如果调用fun(),将会报错。