<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
</body>
<script type="text/javascript">
{
let j;
for(j=0;j<10;j++){
let i=j;
console.log(i);
}
}
//一个简单的闭包作用域考察
function foo() {
var b=a*2;
function bar(c) {
console.log(a,b,c);
}
bar(b*3);
}
foo(2);// 2 4 12
//先后顺序并不一定靠谱
a=2;
var a;
console.log(a);
//闭包的demo
function foo() {
var a=2;
function bar() {
console.log(a);
}
return bar();
}
var baz=foo();
// 循环和闭包
for(var i=1;i<=5;i++){
(function () {
setTimeout(function timer() {
console.log(i);
},i*1000)
})();
}
//调整让上面的循环和闭包能正常工作
for(var i=1;i<=5;i++){
(function (j) {
setTimeout(function timer() {
console.log(j);
},j*1000)
})(i);
}
//我们换成let来实现一次
for(let i=1;i<=5;i++){
setTimeout(function timer() {
console.log(i);
},i*1000)
}
</script>
</html>