我在哪里可以找到V8和ECMAScript之间所有差异的列表?例如V8支持const,它不是ECMAScript标准的一部分.
小智 40
编辑:直接答案:跟踪正在进行的ES5实施的状态,表明V8 googlecode问题已标记为es5 或https://github.com/joyent/node/wiki/ECMA-5-Mozilla-Features-Implemented-in-V8
除了少数边缘情况之外,V8目前实现了所有ES5,并且只有这样才能符合其他当前浏览器处理给定情况的大部分情况.
因为它不会独立生存几乎所有你将要处理的差异都将在它周围的主机环境实现中.对于大多数用途,这是Web浏览器提供的各种API.作为非浏览器示例,Node.js为文件系统和网络交互提供自定义API.在核心语言方面,没有那么多的摆动空间.减去DOM,JavaScript是一种非常简单易用的语言(为什么它如此棒极了),并且有一个非常具体的规范文档.
ES5是ES3的迭代,如果不使用'use strict',则几乎100%向后兼容.经过近十年的停滞以及无法在主要的JavaScript引擎实现者之间达成共识,ES5的诞生和限制主要是为了解决和解决语言中最严重的问题.主流使用ES5的程度是数组附加,对象附加(主要是Object.create),Function.bind和严格模式(完全是关于剥离功能),以及一些内置JSON和base64的本机助手.
这个240页面规范的大部分花费在费力地定义了近15年来在JavaScript中存在的行为的每个细节,以及将被弃用并最终删除的功能列表(with,各种用途eval等).
和谐(ES6)是我们将要看到的第一个真正的重大变化.ES5完成了在同一页面上获取引擎实现并消除JS的大部分问题部分的目标.期待ES6,现在是时候解决一些需要修改语法的基本语言问题了.ES6计划于2013年底完成,但是大型块已经在JS引擎中实现,以便测试它们并了解它们在实际使用中的工作方式.网络是一个生物,实施新标准不是创建一个新的规范,然后在世界上释放它,就像大多数其他行业一样.想法是浮动的,而且必须在过去两实施者水平鼓起(谁写的V8,SpiderMonkey的,JSC,脉轮,等人),然后实际的用户级别(用户在这种情况下是Web开发人员编写的代码在这些发动机运行) .象牙塔听写只会导致缺乏使用.
特别是在以下情况下const:目前尚未完全确定.它是V8和Spidermonkey中具有相似但不完全相同功能的关键字,并且与ES6具有相似但不完全相同的含义.如果您希望目标受众的引擎目前支持它,那么您可以安全地使用它,但是实施它并不是技术上任何官方规范的一部分.迁移let' andconst'
除此之外,还有由运行JS脚本的给定引擎公开的"主机对象".JavaScript首先作为实现存在,第二个作为规范存在,所以直到最近,非专家才知道潜水在哪里线是.当它在浏览器中运行时(通常就是这种情况),文档对象模型将作为主机对象公开以供自动使用.DOM的功能主要使用IDL描述,并且属于W3C的范围.众多规范实现包括6个顶级部分,近50个独立工作组和大约1000个单独的规范.这些是暴露给JavaScript的接口,但完全不受任何JavaScript规范要求的影响.DOM包含所描述的功能的巨大空间并且不断改变其实现.
| 归档时间: |
|
| 查看次数: |
2909 次 |
| 最近记录: |