首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ECMA-262和ECMA-357之间是否存在语法差异?

ECMA-262和ECMA-357之间是否存在语法差异?
EN

Stack Overflow用户
提问于 2012-02-15 08:42:59
回答 1查看 159关注 0票数 4

我正在编写一个基于ECMA-262的JavaScript解析器。我很想知道我需要做多少修改才能使其与ECMA-357兼容。

句法上有什么不同吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-17 06:36:06

有许多语法扩展。其中最重要的是XML文本(参见第11.1.4和11.1.5节):

代码语言:javascript
运行
复制
var foo = <xml>
  foo
</xml>;
var bar = <>
  <tag attr={(1+2).toFixed(2)}/>
  {foo}
</>;

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

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

代码语言:javascript
运行
复制
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节):

代码语言:javascript
运行
复制
xml.soap::foo       // get <foo> child tags with namespace soap
xml.@soap::attr     // get attribute with namespace soap

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

代码语言:javascript
运行
复制
default xml namespace = new Namespace("http://foo/bar");

最后,还有一个类似于for .. infor each .. in循环(参见第12.3节):

代码语言:javascript
运行
复制
for each (var foo in xml)
{

}

据我所知,这些都是语法上的差异--但你可能已经得到了足够多的语法差异。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9286392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档