web前端面试题2022最全 web前端面试题2022

上一篇炒冷饭系列1:一道字节面试题引出的this指向问题开启了炒冷饭系列 , 想必很多人不知道炒冷饭的真正含义 , 那这里就引用一下百度百科的解释 。
炒冷饭是一个网络流行语 , 意思是比喻重复已经说过的话或做过的事 , 没有新的内容 。
逛掘金的都知道 , 平台有很多文章的主题都是写了又写 , 在一些用户看来就是一直在冷饭热炒的感觉;感觉没有其他内容主题可以写了 , 其实不然 , 冷饭热炒也是一门学问 , 毕竟每个人对每个事物的认知都是不一样的 , 你有你的见解我有我的看法 , 只是在别人写的时候你对其还没有一定的认知罢了 。

web前端面试题2022最全 web前端面试题2022


web前端面试题2022(web前端面试题2022最全)
所以我就干脆开启一个炒冷饭系列 , 但是此冷饭非彼冷饭 , 我的冷饭取材于面试或者工作中遇到的一些自己掌握不牢的知识点 , 而不是包罗万象地介绍全部 , 其实就是一个视自身掌握情况来决定是否冷饭热炒的系列 。
同样 , 这次还是由一道字节的面试引出要介绍的主题 , 还是上篇文章说的 , 真的是准备不足而不是别人问得深入、基础 。所以再次提醒面试大厂一定要好好准备 , 不然真的机会渺茫啊 。题目还是一道代码题 , 要求你说出打印什么 , 为什么?
题目就是这样的 , 其实真的不难 , 你可以试着去分析一下 , 如果觉得拿不准结果 , 那就耐心看完此文之后再来回看 , 相信那时你应该就能十拿九稳了 。接下来就由这道面试引出这篇文章的主题:Js的事件循环机制 , 如果你很了解这个主题那就选择略过 , 否则就一起往下看看 , 这是面试题必考的点!
众所周知 , 为了与浏览器进行交互 , Javascript是一门非阻塞单线程的脚本语言 。怎么去理解?
在DOM操作中 , 如果有一个添加节点线程和一个删除节点的线程 , 浏览器并不知道以哪个为准 , 所以只能选择一个线程来执行代码 , 从而防止冲突 。
单线程就意味着任务需要排队 , 按顺序执行 。如果某一任务很耗时 , 那后面的任务不得不排队等待 , 所以为了避免这种阻塞 , 就需要一种非阻塞机制 。这种非阻塞机制就是异步机制 , 即需要等待的任务不会阻塞主线程中同步任务的执行 。
既然主要的原因知道了 , 那就接着说说一些主要的概念然后再介绍具体的事件循环执行问题 。
Js是单线程的脚本语言 , 但是浏览器是多进程的 。浏览器的每一个tab标签页都代表一个独立的进程 , 其中浏览器渲染进程也只属于浏览器多进程中的其中一种 , 其主要负责页面渲染 , 脚本执行 , 事件处理等 。
浏览器进程还包含有以下主要线程:GUI渲染线程、JS引擎线程、事件触发线程、定时器触发线程和HTTP请求线程等 。
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动 , 进程是系统进行资源分配和调度的一个独立单位 。
线程是进程的一个实体 , 是CPU调度和分派的基本单位 , 它是比进程更小的能独立运行的基本单位 。
(注意:一个进程挂掉不会影响其他进程 , 但是一个线程挂掉将导致整个进程挂掉)

推荐阅读