手机版 欢迎访问it开发者社区(www.mfbz.cn)网站

当前位置: > 开发

JS 函数的执行时机

时间:2021/4/11 4:30:22|来源:|点击: 次

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

  • 调用时机
  • 作用域
  • 闭包
  • 形式参数
  • 返回值
  • 调用栈
  • 函数提示
  • 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)
}
上一篇:2021-04-10 下一篇:单例设计模式

Copyright © 2002-2019 某某自媒体运营 版权所有