码迷,mamicode.com
首页 > 其他好文 > 详细

关于变量重新申明的一点问题

时间:2017-06-29 12:43:06      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:log   function   blog   外部变量   输出   span   改变   是什么   存储   

var a = 1;

var a;

console.log(a)   //  1

 

这里把a重新申明了一遍,但是并没有给a 重新赋值,所以之前 a 是什么值现在还是什么值

 

问题出处

var foo = {a: 1};

(function(foo){
  var foo;  // 重新定义,但是并未赋值,指向的地址还是外部传入的foo
  console.log(foo.a);  //  1
  foo.a = 3;   // 和外部变量地址一致, 外部的 foo = {a:3}
  foo = {a: 2}  // 重新赋值,变量存储地址改变,  内部变量 foo = {a:2}
  console.log(foo.a)  // 输出函数内部变量 foo.a     2
})(foo)

console.log(foo.a) // 输出外部变量foo的 foo.a  3


//  输出顺序为 1,2,3

 

关于变量重新申明的一点问题

标签:log   function   blog   外部变量   输出   span   改变   是什么   存储   

原文地址:http://www.cnblogs.com/kugeliu/p/7093752.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!