04_07.严格模式下的作用域生效demo

···
<!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来声明的话,会有很严格的后台思想,也就是存在所谓的作用域。所以点击哪个按钮会弹出对应的数字

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,881评论 2 17
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,110评论 1 10
  • 三、闭包和高阶函数 3.1 闭包 3.1.1 变量的作用域 所谓变量的作用域,就是变量的有效范围。通过作用域的划分...
    梁同学de自言自语阅读 1,495评论 0 6
  • 真正把你想要的东西带到你身边的,是宇宙的力量。在适当的时机,你必须放手,让它来接管。你要留心宇宙给你的讯号,然后抓...
    福尔摩斯田阅读 793评论 0 1
  • 0、对于 HTTP 协议而言,HTML、CSS、JS、JSON 的本质都是什么? 对于 HTTP 协议而言,HTM...
    Jeff12138阅读 255评论 0 0