|
@@ -561,7 +561,7 @@ if (!lastTag || !isPlainTextElement(lastTag)) {
|
|
|
lastTag && isPlainTextElement(lastTag)
|
|
|
```
|
|
|
|
|
|
-取反后的条件就好理解多了,我们知道 `lastTag` 存储着 `stack` 栈顶的元素,而 `stack` 栈顶的元素应该就是**最近一次遇到的一元标签的开始标签**,所以以上条件为真等价于:**最近一次遇到的非一元标签是纯文本标签(即:script,style,textarea 标签)**。也就是说:**当前我们正在处理的是纯文本标签里面的内容**。那么现在就清晰多了,当处理纯文本标签里面的内容时,就会执行 `else` 分支,其他情况将执行 `if` 分支。
|
|
|
+取反后的条件就好理解多了,我们知道 `lastTag` 存储着 `stack` 栈顶的元素,而 `stack` 栈顶的元素应该就是**最近一次遇到的非一元标签的开始标签**,所以以上条件为真等价于:**最近一次遇到的非一元标签是纯文本标签(即:script,style,textarea 标签)**。也就是说:**当前我们正在处理的是纯文本标签里面的内容**。那么现在就清晰多了,当处理纯文本标签里面的内容时,就会执行 `else` 分支,其他情况将执行 `if` 分支。
|
|
|
|
|
|
接下来我们就先从 `if` 分支开始说起,下面的代码是对 `if` 语句块的简化:
|
|
|
|
|
@@ -590,7 +590,7 @@ if (!lastTag || !isPlainTextElement(lastTag)) {
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-简化后的代码看去上结构非常清晰,在 `if` 语句块的一开始定义了 `textEnd` 变量,它的值是**html 字符串中左尖括号(<)第一次出现的位置**,接着开始了对 `textEnd` 变量的一些列判断:
|
|
|
+简化后的代码看上去结构非常清晰,在 `if` 语句块的一开始定义了 `textEnd` 变量,它的值是**html 字符串中左尖括号(<)第一次出现的位置**,接着开始了对 `textEnd` 变量的一系列判断:
|
|
|
|
|
|
```js
|
|
|
if (textEnd === 0) {
|