您好,欢迎访问代理记账网站
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

JS 函数的执行时机

函数的要素 (每个函数都有这些东西)

  • 调用时机
  • 作用域
  • 闭包
  • 形式参数
  • 返回值
  • 调用栈
  • 函数提示
  • arguments (除了箭头函数)
  • this (除了箭头函数)

setTimeout()方法设置一个定时器,该定时器在定时器到期后执行一个函数或指定的一段代码。( setTimeout忙完手头的事后,尽快做另件事 )

执行时机

  let a = 1
  function fn()	{
   setTimeout(()=>{ 
    console.log(a)
  },0)
  }
    fn()  //js会先执行当前代码(先执行a=2,然后再做等会再做的事情(然后执行setTimeout
    a = 2
问:上面代码打印出多少?
答:2 
let i = 0;
for(i = 0; i < 6; ++i) {
	setTimeout(() => {   //setTimeout忙完手头的事后(for循环),尽快做另件事(console.log)
		console.log(i)
	}, 0)
}
问:上面代码打印出多少?
答:66

那我要想打印出0,1,2,3,4,5怎么修改?

for(let i = 0; i < 6; ++i) {
	setTimeout(() => {
		console.log(i)
	}, 0)
}

同样,下面2种方法也能打印出0~5。

for (var i=0; i<6; ++i) {  //利用 setTimeout 的第三个参数
	setTimeout(function(i){
		console.log(i)
	}, 0, i)
}

for(var i=0; i<6; ++i) {   //利用闭包
	!(function(j) {
		setTimeout(function(){
			console.log(j)
		}, 0)
	})(i)
}

分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进