Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么常量/let变量声明在AST树中,而不是像ECMAScript中那样的词汇声明?_Javascript_Ecmascript 6_Abstract Syntax Tree - Fatal编程技术网

Javascript 为什么常量/let变量声明在AST树中,而不是像ECMAScript中那样的词汇声明?

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格式的规范完全独立于语言语法定义。通常,这两者最终会相互关联,但这并不是它们匹配的总体目标

在ECMAScript中,只有var是“VariableDeclaration”,const/let是“LexicalDeclaration”类型

然而,我一直在学习AST树,并注意到estree和babel解析器都在“变量声明”下定义const/let

节点类型不应该对应于ECMAScript节点类型吗?或者我误解了AST树是如何构建的吗

节点类型不应该对应于ECMAScript节点类型吗

AST格式的规范完全独立于语言语法定义。通常,这两者最终会相互关联,但这并不是它们匹配的总体目标

在ESTree的上下文中,您可以使用
.kind
来区分各种类型,而不是使用不同的节点类型,尽管这肯定是一种替代方法

节点类型不应该对应于ECMAScript节点类型吗

AST格式的规范完全独立于语言语法定义。通常,这两者最终会相互关联,但这并不是它们匹配的总体目标


在ESTree的上下文中,您可以使用
.kind
来区分各种类型,而不是使用不同的节点类型,尽管这肯定是另一种方法。

+1,您是权威来源:-)+1,你是权威消息来源:-)相关:相关: