Javascript ECMA-262和ECMA-357之间有语法上的差异吗?
我正在编写一个基于的JavaScript解析器。我想知道我需要改变多少才能使它兼容Javascript ECMA-262和ECMA-357之间有语法上的差异吗?,javascript,parsing,e4x,ecma262,Javascript,Parsing,E4x,Ecma262,我正在编写一个基于的JavaScript解析器。我想知道我需要改变多少才能使它兼容 有语法上的差异吗?有许多语法扩展。最重要的是XML文本(参见第11.1.4节和第11.1.5节): 最后,还有每个的。。在类似于..的循环中。。在中(参见第12.3节): 据我所知,这些都是语法上的差异——但你可能已经有了足够多的差异。可能值得注意的是,就浏览器而言,E4X只受Firefox支持,在Firefox中不受欢迎。在这一点上看起来像是死了的技术。@Daskwuff:哎哟。。。在你说我发现-看起来它确实被
有语法上的差异吗?有许多语法扩展。最重要的是XML文本(参见第11.1.4节和第11.1.5节): 最后,还有每个的
。。在类似于..的循环中。。在
中(参见第12.3节):
据我所知,这些都是语法上的差异——但你可能已经有了足够多的差异。可能值得注意的是,就浏览器而言,E4X只受Firefox支持,在Firefox中不受欢迎。在这一点上看起来像是死了的技术。@Daskwuff:哎哟。。。在你说我发现-看起来它确实被悄悄地弃用了。我想这只是因为7年内没有其他浏览器供应商实现了它。这是真的吗?这看起来很糟糕:-/@copy:如果您必须处理XML数据,那么这比通常的DOM调用要好得多(例如:更干净、更易于阅读),在获取感兴趣的树部分时,常常与循环结合使用。这里的例子仅仅说明了在语法上可能发生的事情,而不是在实际代码中可能发生的事情。
var foo = <xml>
foo
</xml>;
var bar = <>
<tag attr={(1+2).toFixed(2)}/>
{foo}
</>;
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
xml.soap::foo // get <foo> child tags with namespace soap
xml.@soap::attr // get attribute with namespace soap
default xml namespace = new Namespace("http://foo/bar");
for each (var foo in xml)
{
}