首页 > 代码库 > 关于变量重新申明的一点问题
关于变量重新申明的一点问题
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
关于变量重新申明的一点问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。