前端知识

一些前端学习的知识记录
  • DOM

就是对标签结构映射成树结构的一种规范或者编程接口,比如对html / XML标签映射成DOM树结构. 这样就能够让标记/标签语言通过DOM树结构被其他动态语言操作(比如JS、python) 通过什么操作呢?其实规范DOM的时候就有对应的方法或者事件模型(Event),这就是DOM。

  • CSSOM

类似DOM,不过是对CSS去做树结构的解析映射进而操作CSS

  • Reflow(重排):元素尺寸/位置变化,重新计算布局

  • Repaint(重绘):颜色/背景变化,重新绘制像素

  • 事件循环

跟操作系统的调度类似,本质上是对资源调度的优化方案,尽可能多的调度资源或者进行进程处理(任务队列能被调度)。 比如主线程在运行中途遇到阻塞(请求等待情况),有个监听别的任务队列的模块,不断地去调度拿去一些进行执行,不影响主线程的处理和进度,所以事件循环就是一个不断监听调度过程。 对JS而言,他是一个单线程处理的语言。引入事件循环其实还是单线程,不过时交替执行。主要是让页面能够正常渲染,防止卡死。

  • JS运行?

为啥前端项目要用Node.js?因为JS是运行在浏览器里头的,浏览器有对应的内核,内核里面就有JS引擎,也就是用来运行JS的工具,而为了不通过浏览器去运行js(开发时候能够直接启动js,浏览器请求相关的东西直接node里面返回给到他),就把浏览器的JS引擎给做到开发工具里头,这就是Node.js的核心。 浏览器内核还有渲染、DOM、API等等等额外的。