js延时函数_JS 函数的执行时机

JS 函数的执行时机

下面将有这段JS 代码,来理解JS 函数的执行时机
let 

目录

  1. 解释为什么上面代码会打印 6 个 6
  2. 写出让上面代码打印 0、1、2、3、4、5 的方法
  3. 除了使用 for let 配合,还有什么其他方法可以打印出 0、1、2、3、4、5

为什么这段代码会打印 6 个 6

let 

运行结果:

f808b192d4d42638287e7bb6afb377af.png
首先,代码第一行,在外面声明了一个i变量,使得目前全局只有一个变量i
第二行,进入循环体中,循环体第一条语句就是设定一个“延时闹钟”,延后执行
至于要延后多久呢?答案是马上! 但是,由于JS 是单线程的,不存在同时执行两条语句,所以这个马上
为执行其它语句后, 马上再执行
所以,为什么会打印 6 个 6 的原因

我们把源代码拉拉长就可以知道,这个马上,是有多马上

let 

运行结果:

53882f5476f373ecb315df55ef3d0a18.png

让上面代码打印 0、1、2、3、4、5 的方法

其实ES6 之后,JS 引擎就对这种写法,专门“优化”了
使其符合“正常”的思维结果
for

运行结果:

4a79506d312162418cb1a5f237c762eb.png

除了使用 for let 配合,还有什么其他方法可以打印出 0、1、2、3、4、5

  1. 采用闭包,并立即执行内部函数
let 
  1. 利用 setTimeout 的第三个参数,将 i 传进去
let 
  1. 利用 const 关键字
let 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值