<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript">
function test()
{
var arr=[];
for(var i=0;i<10;i++)
{
arr[i]=function(){ //每次给arr[i]放一个函数但是内部的i依然是个变量,
console.log(i);
}
}
i=100;//如果这里修改了i的值相当于arr中所有函数的i都变成了100;
arr[5]();//当调用函数时,才会去找i而这时的i已经变成了100所以输出100
//原因var 是全局的变量
/*
var特性:作用域只有方法内和全局
而let有块级域 {{{{{{{{{let a}}}let a}}}}}} {}代表不同的作用域
不同的作用域不冲突
const 相当于是个常量,而是块级属性只在当前域不可变,其他域相当于重新定义
*/
}
</script>
</head>
<body>
<button onclick="test()">点击控制台输出</button>
</body>
</html>