簡體   English   中英

ECMA-262和ECMA-357之間是否存在語法差異?

[英]Are there any syntactic differences between ECMA-262 and ECMA-357?

我正在編寫一個基於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)
{

}

據我所知,這些都是語法差異 - 但你可能已經綽綽有余了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM