相关疑难解决方法(0)

JavaScript闭包如何工作?

您如何向知道其所包含概念的人(例如函数,变量等)解释JavaScript闭包,但不了解闭包本身?

我已经看过维基百科上给出的Scheme示例,但遗憾的是它并没有帮助.

javascript variables closures scope function

7644
推荐指数
82
解决办法
139万
查看次数

为什么让set和var绑定使用setTimeout函数表现不同?

此代码记录66次:

(function timer() {
  for (var i=0; i<=5; i++) {
    setTimeout(function clog() {console.log(i)}, i*1000);
  }
})();
Run Code Online (Sandbox Code Playgroud)

但是这段代码......

(function timer() {
  for (let i=0; i<=5; i++) {
    setTimeout(function clog() {console.log(i)}, i*1000);
  }
})();
Run Code Online (Sandbox Code Playgroud)

...记录以下结果:

0
1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)

为什么?

是因为不同地let绑定到内部范围每个项目并var保持最新值i

javascript var let

45
推荐指数
2
解决办法
7477
查看次数

我们是否需要使用`for..of` /`for..in`循环进行变量声明

我在网上看到这样的例子:

const roles = [];

for (i of roles) {
  roleObj[roles[i].key] = true;
}
Run Code Online (Sandbox Code Playgroud)

我们不需要声明变量i,就像这样吗?

for (let i of roles) {
  roleObj[roles[i].key] = true;
}
Run Code Online (Sandbox Code Playgroud)

大量的文章正在推广第一个例子,这对我来说似乎很愚蠢:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of

javascript node.js

0
推荐指数
1
解决办法
47
查看次数

标签 统计

javascript ×3

closures ×1

function ×1

let ×1

node.js ×1

scope ×1

var ×1

variables ×1