AST语法树与指针思想

88 阅读1分钟

1. AST语法树

Ast语法树是什么?

AST语法树又称为抽象语法树, 它的本质就是一个对象, 是将HTML语言解析成JavaScript对象的版本, 类似于webpack中的babel, 它是将JavaScript中的es6语言模板解析成es5

以上都叫做`模板编译`

AST语法树 与 虚拟节点的关系

AST语法树不会去执行diff算法,而虚拟节点会执行diff算法 他们的执行流程如下

image.png

2. 指针思想

这里指针指的就是下标, 而不是C语言中的指针

我们通过一道题目来了解一下指针思想吧

题目是这样的: 有一串字符为 str= 'aaabbbcccccddddddxxxxxxx' 请尝试找出连续重复的字符

思想:

这是我们需要创建两个指针 设它们为i,j

image.png

如果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++
    }