js

作者: 天字一等 | 来源:发表于2018-11-15 12:57 被阅读11次

    1、变量提升、函数提升: https://segmentfault.com/a/1190000014437648

    1    var foo = {n:1}; //foo是引用类型的变量
    2    (function (foo) {
    3        console.log(foo.n);  //原题中的第5行,由于存在变量提升,因此会在函数开始就声明,此时为undefined;然而由于一个变量的声明优先级低于形参,所以这行没有任何效果
    4        foo.n=3;
    5        var foo = {n:2};
    6        console.log(foo.n);
    7    })(foo);
    8    console.log(foo.n);
    
    函数体内部,局部变量的优先级比同名的全局变量高
    var a = 3;
    function test(){
      console.log(a)  //undefined  因为变量提升,所以局部变量a会先声明
      var a = 4;
      console.log(a)  //4
    }
    

    相关文章

      网友评论

          本文标题:js

          本文链接:https://www.haomeiwen.com/subject/dpbefqtx.html