关于前端:前端面试系列五浏览器及计算机基础

8次阅读

共计 988 个字符,预计需要花费 3 分钟才能阅读完成。

快来退出咱们吧!

“ 小和山的菜鸟们 ”,为前端开发者提供技术相干资讯以及系列根底文章。为更好的用户体验,请您移至咱们官网小和山的菜鸟们 (https://xhs-rookies.com/) 进行学习,及时获取最新文章。

“Code tailor”,如果您对咱们文章感兴趣、或是想提一些倡议,微信关注 “小和山的菜鸟们” 公众号,与咱们取的分割,您也能够在微信上观看咱们的文章。每一个倡议或是同意都是对咱们极大的激励!

面试系列不定期更新,请随时关注

前言

本篇专栏重点在于解说面试中 浏览器 / 计算机基础知识 的面试题内容。

留神: 本篇专栏至只会波及到重点内容,并不会进行拓展。某些题目须要拓展知识点的,咱们会将拓展内容、整体详细信息搁置与每个题目的最后面,能够自行查看。

浏览器 / 计算机基础知识

浏览器 / 计算机基础知识
过程和线程的区别
为什么 JS 要设置为单线程
浏览器事件循环
什么时候触发浏览器的事件循环
Script 的 async 和 defer 加载的区别

题目解析

过程和线程的区别

  • 过程是运行中的程序,线程是过程的外部的一个执行序列
  • 过程是资源分配的单元,线程是执行单元
  • 过程间切换代价大,线程间切换代价小
  • 过程领有资源多,线程领有资源少
  • 多个线程共享过程的资源

为什么 JS 要设置为单线程

JavaScript 之所以为单线程跟其用处无关,JavaScript 的主要用途是与用户互动,以及操作 DOM。这决定了它只能是单线程,否则会带来很简单的同步问题。比方,假设 JavaScript 同时有两个线程,一个线程在某个 DOM 节点上增加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?

所以,为了防止复杂性,从一诞生,JavaScript 就是单线程,这曾经成了这门语言的外围特色,未来也不会扭转。

浏览器事件循环

浏览器事件循环是指 JS 引擎在解析 JS 脚本时,将同步办法压入到执行栈,而将异步办法放入事件队列中,当执行栈中的办法执行完后,浏览器返回事件队列查看是否有已实现的工作,如果有,则将其取出放入执行栈中。重复反复上述动作即叫做事件循环

答题须要跟浏览器的线程分割起来,即 JS 引擎线程、事件触发线程、定时触发器线程

更多详情请见 JavaScript 运行机制详解:再谈 Event Loop

Script 的 async 和 defer 加载的区别

更多详情请见 defer 和 async 的区别

下节预报

下节咱们将为大家带来 手写程序算法题 的面试题解,敬请期待!

正文完
 0