没有搞懂第一个alert(x) 为什么是返回function 他是继承那个的?

来源:7-3 [JavaScript]ES3执行上下文

Lyong

2015-05-15 11:16

求解答,第一个alert(x),为什么是function?

写回答 关注

4回答

  • 怀旧的文学小青年
    2015-05-15 14:27:28
    已采纳

    在代码块中的变量声明会被隐式地提升到封闭函数的顶部


    比如 上面代码可以这样写:


    var x;
    function x(){}
    alert(x);
    x=10;
    alert(x);
    x=20;
    //function x(){}; 这块代码被提升了
    alert(x);
    if(true){
    var a=1;
    }else{
    var b=true;
    }
    alert(a);
    alert(b);


    如果没有function x(){}的话,第一个弹出的应该是 undefined !

    Lyong

    非常感谢!

    2015-06-05 10:56:55

    共 2 条回复 >

  • Bosn
    2015-06-05 10:47:02

    额,视频里莫非我木有说清楚,55555,掩面而泣

  • 萱草香篱
    2016-03-30 23:18:58

    var x;

    function x(){}

    alert(x);

    x=10;

    alert(x);

    x=20;

    //function x(){}; 这块代码被提升了

    alert(x);

    if(true){

    var a=1;

    }else{

    var b=true;

    }

    alert(a);

    alert(b);


  • Lyong
    2015-05-16 22:37:47

    THK

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281112 学习 · 1020 问题

查看课程

相似问题