js中的变量提升(Hoisting)

<script>
  function test(){
    console.log(a);
    console.log(foo());
    var a=1;
    function foo(){
    return 2;
  };
};
</script>

执行结果为:undefined和2;

变量声明在js中需要提升,所以以上代码相当于以下代码:

<script>
  function test(){
    var a;
    function foo(){
    return 2;
  };
    console.log(a);
    console.log(foo());
    a=1;
};
</script>
posted @ 2017-05-08 13:19  风雨飘飘飘啊飘  阅读(137)  评论(0编辑  收藏  举报