···
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
</body>
<script>
"use strict";
var lis = document.getElementsByTagName("li");
// for(var i = 0 ; i < lis.length ; i ++) {
// lis[i].onclick = function() {
// alert(i);
// }
// }
for(let i = 0 ; i < lis.length ; i ++) {
lis[i].onclick = function() {
alert(i);
}
}
</script>
</html>
···
这个例子中,如果不用严格模式的话,for语句会瞬间执行完,而在当前页面alert出来的只会是4,但是如果使用了严格模式,并且声明变量用let来声明的话,会有很严格的后台思想,也就是存在所谓的作用域。所以点击哪个按钮会弹出对应的数字