最佳答案
有许多语法扩展。最重要的是 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/