JavaScript setTimeout

JavaScript是一门单线程语言,UI渲染,脚本执行都使用同一个线程。

setTimeout是很多人喜欢用的延迟执行函数,如

setTimeout(function() {
  console.log('Hello World');
}, 3000);

我们会认为程序在三秒后执行Hello World,但实际上又可能会超出三秒,并且时间不固定。前面说了,JavaScript是单线程,所有异步执行的函数都会被压入一个Event Table,只有主线程空闲的时候才会从Event Table取出函数执行,Event Queue是一个list,每次主线程空闲就从Event Queue里取出第一个函数执行

setTimeout(function() {
  console.log('Hello World');
}, 3000);

for (let i = 0; i < 10000000; i++) {}

比如以上程序,虽然先执行setTimeout并在延迟3秒后执行,但到下边的语句占用了一些时间,所以实际上setTimeout函数执行远超3秒

分享

TITLE: JavaScript setTimeout

LINK: https://www.qttc.net/276-javascript-settimeout.html

NOTE: 原创内容,转载请注明出自琼台博客