var num =, 10; function a () { console.log (num); } (),,,,,//结果警报(10),一个函数作用域里没有num ,所以向上查找外层的作用域,有且等10所于以弹出10而不是未定义的。
,
<强> 强>
var num =, 10; function a () { ,,,,,,//var num; console.log (num); var num =, 11,,//num =, 11;} ,,,,(),,,,,//,未定义的
就拆分等价于被注释掉的蓝色部分,这就是变量提升,所有的变量都事先被提升到所属函数作用域的头部声明。
,
,
,
,