Javascript 为什么常量/let变量声明在AST树中,而不是像ECMAScript中那样的词汇声明?
在ECMAScript中,只有var是“VariableDeclaration”,const/let是“LexicalDeclaration”类型 然而,我一直在学习AST树,并注意到estree和babel解析器都在“变量声明”下定义const/let 节点类型不应该对应于ECMAScript节点类型吗?或者我误解了AST树是如何构建的吗 节点类型不应该对应于ECMAScript节点类型吗 AST格式的规范完全独立于语言语法定义。通常,这两者最终会相互关联,但这并不是它们匹配的总体目标 在ESTree的上下文中,您可以使用Javascript 为什么常量/let变量声明在AST树中,而不是像ECMAScript中那样的词汇声明?,javascript,ecmascript-6,abstract-syntax-tree,Javascript,Ecmascript 6,Abstract Syntax Tree,在ECMAScript中,只有var是“VariableDeclaration”,const/let是“LexicalDeclaration”类型 然而,我一直在学习AST树,并注意到estree和babel解析器都在“变量声明”下定义const/let 节点类型不应该对应于ECMAScript节点类型吗?或者我误解了AST树是如何构建的吗 节点类型不应该对应于ECMAScript节点类型吗 AST格式的规范完全独立于语言语法定义。通常,这两者最终会相互关联,但这并不是它们匹配的总体目标
.kind
来区分各种类型,而不是使用不同的节点类型,尽管这肯定是一种替代方法
节点类型不应该对应于ECMAScript节点类型吗
AST格式的规范完全独立于语言语法定义。通常,这两者最终会相互关联,但这并不是它们匹配的总体目标
在ESTree的上下文中,您可以使用
.kind
来区分各种类型,而不是使用不同的节点类型,尽管这肯定是另一种方法。+1,您是权威来源:-)+1,你是权威消息来源:-)相关:相关: