如何通过setTimeout深入探究JavaScript运行时机制及其详解?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2393个文字,预计阅读时间需要10分钟。
序 + setTimeout() 函数:用于指定某个函数或代码段在多少毫秒后执行。它返回一个整数,表示定时器的编号,可以用来取消该定时器。 示例 + console.log(1); setTimeout(function () { console.log(Hello World!); }, 2000);
序
setTimeout()函数:用来指定某个函数或某段代码在多少毫秒之后执行。它返回一个整数,表示定时器timer的编号,可以用来取消该定时器。
例子
console.log(1); setTimeout(function () { console.log(2); }, 0); console.log(3);
问:最后的打印顺序是什么?(如果不了解js的运行机制就会答错)
正确答案:1 3 2
解析:无论setTimeout的执行时间是0还是1000,结果都是先输出3后输出2,这就是面试官常常考查的js运行机制的问题,接下来我们要引入一个概念,JavaScript 是单线程的。
二、 JavaScript 单线程
JavasScript引擎是基于事件驱动和单线程执行的,JS引擎一直等待着任务队列中任务的到来,然后加以处理,浏览器无论什么时候都只有一个JS线程在运行程序,即主线程。
通俗的说:JS在同一时间内只能做一件事,这也常被称为 “阻塞式执行”。
本文共计2393个文字,预计阅读时间需要10分钟。
序 + setTimeout() 函数:用于指定某个函数或代码段在多少毫秒后执行。它返回一个整数,表示定时器的编号,可以用来取消该定时器。 示例 + console.log(1); setTimeout(function () { console.log(Hello World!); }, 2000);
序
setTimeout()函数:用来指定某个函数或某段代码在多少毫秒之后执行。它返回一个整数,表示定时器timer的编号,可以用来取消该定时器。
例子
console.log(1); setTimeout(function () { console.log(2); }, 0); console.log(3);
问:最后的打印顺序是什么?(如果不了解js的运行机制就会答错)
正确答案:1 3 2
解析:无论setTimeout的执行时间是0还是1000,结果都是先输出3后输出2,这就是面试官常常考查的js运行机制的问题,接下来我们要引入一个概念,JavaScript 是单线程的。
二、 JavaScript 单线程
JavasScript引擎是基于事件驱动和单线程执行的,JS引擎一直等待着任务队列中任务的到来,然后加以处理,浏览器无论什么时候都只有一个JS线程在运行程序,即主线程。
通俗的说:JS在同一时间内只能做一件事,这也常被称为 “阻塞式执行”。

