前端高频面试题记录(近期持续更新)

219 阅读2分钟

一、JS基础

二、Vue

三、网络

1、用户输入URL后,基本的浏览器连接处理

  1. 浏览器从URL中解析出服务器的主机名;
  2. 浏览器将服务器的主机名转换成服务器的IP地址;
  3. 浏览器将端口号(如果有的话)从URL中解析出来;
  4. 浏览器建立一条与Web服务器的TCP连接;
  5. 浏览器向服务器发送一条HTTP请求报文;
  6. 服务器向浏览器回送一条HTTP响应报文;
  7. 关闭连接,浏览器显示文档。

四、CSS

五、React

六、异步

七、工程化

八、浏览器

1、常见浏览器及其内核

  1. Internet Explorer(IE浏览器):Trident内核;
  2. Firfox(火狐浏览器):Gecko内核;
  3. Chrome(谷歌浏览器):Chromium内核或Chrome内核,以前是Webkit;
  4. Safari:Webkit内核;
  5. Opera:Blink内核。

2、浏览器渲染原理及过程

关键渲染路径:浏览器从最初接收请求来的HTMLCSSJavaScript等资源,然后解析、构建树、渲染布局、绘制,最后呈现给用户能看到的界面这整个过程。

  • 用户看到页面实际上可以分为两个阶段:

    1. 页面内容加载完成:DOMContentLoaded

      DOM加载完成。

    2. 页面资源加载完成:Load

      页面上所有的DOM、样式表、脚本、图片都加载完成。

  • 浏览器渲染的过程主要包括以下五步:

    1. 浏览器将获取的HTML文档解析成DOM树
    2. 处理CSS标记,构成层叠样式表模型CSSOM(CSS Object Model)
    3. 将DOM和CSSOM合并为渲染树(rendering tree),代表一些列将被渲染的对象;
    4. 渲染树的每个元素包含的内容都是计算过的,称之为布局(layout)

      浏览器使用一种流式处理的方法,只需要一次绘制操作就可以布局所有的元素。

    5. 将渲染树的各个节点绘制到屏幕上,称为绘制(painting)

DOM > CSSOM > Rendering Tree > Layout > Painting

webkit渲染引擎流程

参考资料:浏览器渲染原理与过程

九、设计模式

十、数据结构和算法