【前端笔记】

151 阅读1分钟

重排(Reflow) 重绘 (Repaint)

重排: pixel 中 position 改变才改变

重绘: pixel 中 position 和 rgba 改变才改变

bfc

不希望去影响其他元素,自己内部的元素也不受外部的影响

babel

parse 解析

  • high code 转 token
  • token 转 high ast

transform 转换

  • hight ast 转 low ast

generate 生成

  • low ast 转 low code

webpack

根据 entry 拿到文件 txt
根据读到的 txt code 生成 ast, 生成 ast 根据 entry, ast 来收集所有的依赖

juejin.cn/post/684490…

json-parse

json string -> tokens -> dict or list

lisp interpreter

code string -> tokens -> ast -> result

github.com/AnkleLiu/in…

react 核心功能

  1. createElement, 将 reactElement 转 vdom
  2. vdom 结构
<div id="test">
    <span>grammyli</span>
</div>
{
    type: 'div',
    props: {
        id: 'test',
    },
    children: [
        {
            type: 'span',
            props: {},
            children: [
                {
                    type: 'text',
                    data: 'grammyli',
                    nodeValue: 'grammyli',
                },
            ],
        }
    ],
}
  1. render 方法: 创建dom元素 =》 绑定事件 =》添加 props中属性值 =》 递归 处理 children

编译原理基础知识

编译程序

源程序-》词法-》语法(ast语法抽象树)-》中间语言(自己的汇编语法)-》汇编 -》 目标代码

翻译程序

源语言 -》 翻译程序 -》 目标语言

编译前端: 前端主要由源语言有关但与目标机无关的那些部分组成,通常包括词法分析、语法分析、语义分析与中间代码的产生,有的代码优化工作也可以包括在前端。

编译后端:

后端包括编译程序中与目标机有关的那些部分,如与目标机有关的代码优化和目标代码生成等。通常后端不依赖源语言而仅仅依赖于中间语言