js

2018-11-15  本文已影响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
}
上一篇 下一篇

猜你喜欢

热点阅读