变量提升、函数提升
变量提升:JS 解析器会把 var 声明的变量提升到,当前作用域最前面(只提升声明,不提升赋值);
函数提升:把 function 关键字声明的函数(命名函数)提升,当前作用域最前面;
(只提升声明,不提升执行)
重点:
当前作用域最前面;函数外 全局变量声明提升,但是赋值还在后面;
案例1
答案:
undefined
案例2
答案:
undefined
20
案例3
答案:
undefined
9
案例4 (有坑)典型笔试面试题
答案:
9
9
9
9
9
报错:a is not defined;
坑:
在声明 var a = b = c = 9;
分开即为:
var a = 9;
b = 9;
c =9;
JS 对于不声明,直接使用的变量,默认为 全局变量;操蛋吧嘿嘿嘿