微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaScript 中 let 变量的提升

如何解决JavaScript 中 let 变量的提升

我定义了以下函数

const func = ()=>{
  let a =  new Array(2).fill().map(i => new Array(2).fill(1));
  console.log(`%o`,a);
  a[0][0]++;
  return a;
}

当我在 DevTools 中实现 func() 时,结果是这样的:

(2) [Array(2),Array(2)]
0: (2) [2,1]
1: (2) [1,1]
length: 2
__proto__: Array(0)


(2) [Array(2),1]
length: 2
__proto__: Array(0)

我想要第一个

console.log(`%o`,a); 

成为

[[1,1],[1,1]]

但结果出乎意料。

为什么会这样?这是 hoisting 的示例吗?

任何信息将不胜感激。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。