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