1. AST语法树
Ast语法树是什么?
AST语法树又称为抽象语法树, 它的本质就是一个对象, 是将HTML语言解析成JavaScript对象的版本, 类似于webpack中的babel, 它是将JavaScript中的es6语言模板解析成es5
以上都叫做`模板编译`
AST语法树 与 虚拟节点的关系
AST语法树不会去执行diff算法,而虚拟节点会执行diff算法 他们的执行流程如下
2. 指针思想
这里指针指的就是下标, 而不是C语言中的指针
我们通过一道题目来了解一下指针思想吧
题目是这样的: 有一串字符为 str= 'aaabbbcccccddddddxxxxxxx' 请尝试找出连续重复的字符
思想:
这是我们需要创建两个指针 设它们为i,j
如果i和j指向的字符相同时,j后移,i不动.
相反如果i和j指向的字符不相同,则说明i和j之间是连续的, 这时i追上j, j后移
var str = 'aaabbbcccccddddddxxxxxxx'
// 设置指针
var i = 0
var j = 1
// 开始遍历每一项
while (i <= str.length - 1) {
// 判断 如果str的i项和j项不一样时
if (str[i] != str[j]) {
console.log(str[i] + '是连续的', '一共连续了' + (j - i) + '次')
i = j
}
// 如果一样
j++
}