前端面试的话术集锦第 4 篇:进阶篇下

这是记录前端面试的话术集锦第四篇博文——进阶篇下,我会不断更新该博文。❗❗❗

1. 浏览器Eventloop和Node中的有什么区别


众所周知JS是⻔⾮阻塞单线程语⾔,因为在最初JS就是为了和浏览器交互⽽诞⽣的。

如果JS是⻔多线程的语⾔话,我们在多个线程中处理DOM就可能会发⽣问题(⼀个线程中新加节点,另⼀个线程中删除节点),当然可以引⼊读写锁解决这个问题。

JS在执⾏的过程中会产⽣执⾏环境,这些执⾏环境会被顺序的加⼊到执⾏栈中。如果遇到异步的代码,会被挂起并加⼊到Task(有多种task)队列中。

⼀旦执⾏栈为空,Event Loop就会从Task队列中,拿出需要执⾏的代码并放⼊执⾏栈中执⾏。所以本质上来说,JS中的异步仍为同步⾏为。

console.log('script start');

setTimeout<

猜你喜欢

转载自blog.csdn.net/lvoelife/article/details/132612581