一个题目的问题
来源:19-6 存储
李行知
2017-09-20
var foo = {n:1};
(function(foo){
var foo;
console.log(foo.n);
foo.n = 3;
foo = {n:2};
console.log(foo.n);
})(foo);
console.log(foo.n);为什么输出是1 2 3
在函数里面也定义了一个foo
那么变量提升,在函数内部的第一行应该就是var foo;
此时foo为undefined
那么输出也是undefined才是啊
写回答
2回答
-
foo 是一个参数,参数本身就是被传入值的,是有值的。你的疑问可以用三行代码来解释:var a = 100; var a; console.log(a); 试试打印出什么来
10 -
之桃呀
2018-12-20
这道题为什么最后一个输出的是3呢
012018-12-20
相似问题