当前位置: 首页 > wzjs >正文

电子商务网站建设策划什么是网络推广员

电子商务网站建设策划,什么是网络推广员,武清做网站的公司,设计一套网站费用for (var i 1; i < 5; i) {setTimeout( function timer() {console.log(i);}, i * 1000 ); }//要求改动上述代码&#xff0c;使其依次输出1、2、3、4、5每过1秒钟输出了一个数字6&#xff0c;5个6 当同步代码执行完毕后&#xff0c;开始执行异步的setTimeout代码&#xff…
for (var i = 1; i <= 5; i++) {setTimeout( function timer() {console.log(i);}, i * 1000 );
}//要求改动上述代码,使其依次输出1、2、3、4、5

每过1秒钟输出了一个数字6,5个6

当同步代码执行完毕后,开始执行异步的setTimeout代码,执行setTimeout时需要从当前作用域内寻找一个变量 i ,此时for循环已执行完毕,当前 i=6,所以执行setTimeout时输出为6,任务队列中的剩余4个setTimeout也依次执行,输出为6。

用立刻执行函数包裹,把i传进去,就是闭包

for (var i = 1; i <= 5; i++) {(function(i){ //用立刻执行函数包裹,把i传进去setTimeout( function timer() {console.log(i);}, i * 1000 );})(i);
}

用立刻执行函数。这样 console.log(i); 中的i就保存在每一次循环生成的立刻执行函数中的作用域里了。

块级作用域–关键字let

使用闭包可以得到正确的结果,原因就是改变了i的作用域,那如果我们把循环中的每个setTimeout都独立成一个作用域是不是也能实现同样的结果呢?

我们都知道,在JavaScript中,每个函数是一个独立的作用域,但是“{}”是不能形成独立作用域的。

在ES6中提出了一个新的关键字let,就可以声明一个仅对当前“{}”内部有作用的变量。
在这里插入图片描述
let是块级作用域,每执行一次setTimeout就向每个块中寻找i值,执行了5次,每个块中分别是1 2 3 4 5,所以结果为 1 2 3 4 5
最后结果是1s后 1 2 3 4 5

var let 经典面试题(理解作用域)

详解setTimeOut面试题

for循环 + setTimeout 结合的烂大街的面试题

http://www.dtcms.com/wzjs/390417.html

相关文章:

  • 乌鲁木齐市网站建设珠海网站seo
  • 做网站买计划书网络营销文案策划都有哪些
  • wordpress 数据导入百度网络优化推广公司
  • 医疗网站模板管理系统
  • 网站源码破解杭州百度推广电话
  • 网站建设在家兼职做企业网站推广公司
  • 深圳网站建设加q5299丶14602推广肇庆seo优化
  • 中天建设集团山西分公司网站南昌百度推广公司
  • 网站后台管理界面代码百度广告投放电话
  • 成都那家网站建设好网络营销专业就业方向
  • 小孩和妈妈做网站企业营销网站建设系统
  • 视频网站 怎么做搜索引擎优化的英文
  • 网站做后台教程优化推广联盟
  • 海口做网站公司宜昌seo
  • 深圳商城网站建设公司合肥关键词排名推广
  • 知名的网站制作短视频推广策略
  • 江苏景禾瑜博建设工程有限公司网站百度推广怎么弄
  • 网站备案 湖北宁波seo外包服务
  • 哈尔滨做网站公司广州网站seo地址
  • 中天银都建设集团网站b2b多平台一键发布
  • 搞笑网站源代码杭州网站运营十年乐云seo
  • 外网网站seo链接优化建议
  • 南京建设银行官方网站沈阳网络优化培训
  • 网站怎么设置标题搜索引擎推广和优化方案
  • 姜堰哪里有网站建设的地推拉新app推广接单平台免费
  • 公司网站简介怎么做培训机构招生方案范文
  • 百元建网站图片搜索引擎
  • 网页设计课程期末总结索引擎优化 seo
  • 大良营销网站建设案例关键词优化排名用哪个软件比较好
  • 成都网站建设四川冠辰网站建设开平网站设计