js变量提升和函数提升

  

 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;}
  
  ,,,,(),,,,,//,未定义的

就拆分等价于被注释掉的蓝色部分,这就是变量提升,所有的变量都事先被提升到所属函数作用域的头部声明。

,

 

,

,

 

,

 


js变量提升和函数提升