gpt4 book ai didi

javascript - ECMA-262 和 ECMA-357 之间有语法差异吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:05:31 26 4
gpt4 key购买 nike

我正在编写一个基于 ECMA-262 的 JavaScript 解析器.我很想知道我需要改变多少才能做到这一点 ECMA-357兼容。

有语法差异吗?

最佳答案

有许多语法扩展。最重要的是 XML 文字(请参阅第 11.1.4 和 11.1.5 节):

var foo = <xml>
foo
</xml>;
var bar = <>
<tag attr={(1+2).toFixed(2)}/>
{foo}
</>;

上面的示例显示了空根标记和 XML 代码中的 JavaScript 表达式的特殊情况。

还有一些表达式在 ECMA-262 中无效(请参阅第 11.2 节):

xml.@attr           // get attribute attr
xml.* // get all child elements
xml.@* // get all attributes
xml..foo // get all <foo> tags
xml..foo.(@id == 1) // filter <foo> tags by id attribute

有命名空间(见 11.1.2 节):

xml.soap::foo       // get <foo> child tags with namespace soap
xml.@soap::attr // get attribute with namespace soap

有一个默认的 XML 命名空间语句,它在语法上是一个非常不寻常的构造(请参阅第 12.1 节):

default xml namespace = new Namespace("http://foo/bar");

最后,还有 for each .. in 循环,它类似于 for .. in(请参阅第 12.3 节):

for each (var foo in xml)
{

}

据我所知,这些是所有语法差异 - 但您可能已经了解得足够多了。

关于javascript - ECMA-262 和 ECMA-357 之间有语法差异吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9286392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com