部分ECMAScript术语

ECMAScript

Sun(现在的Oracle)公司持有着“Java”和“JavaScript”的商标.这就让微软不得不把自己的JavaScript方言称之为“JScript”.然后,在这门语言被标准化的时候,就必须使用一个与二者都不同的名字.“ECMAScript”就这样诞生了,这个名字的来由是因为执行标准化的组织是Ecma国际.通常来说,术语“ECMAScript”和“JavaScript”指的是同一个东西.但如果把JavaScript看成是“Mozilla或其他组织的ECMAScript实现”,那么ECMAScript就是实现JavaScript所依据的标准.术语“ECMAScript”也用来描述语言版本(比如ECMAScript 5).

ECMA-262 / ECMAScript 5

Ecma国际 (一个标准化组织)创建了ECMA-262规范,这个规范就是ECMAScript语言的官方标准.如果有人提到ECMAScript 5,那么他指的就是ECMA-262规范的第五版,同时也是当前最新的正式规范.

Ecma第39号技术委员会 (TC39)

是一组开发ECMA-262标准规范的人(Brendan Eich和其他一些人).

ECMAScript的历史

  1. ECMAScript 3 (1999年12月)
    这是目前大部分浏览器都支持的ECMAScript版本.该版本引入了很多的新特性,这些特性已经成为该语言不可或缺的一部分:

  2. ECMAScript 4 (2008年7月被废弃)
    ECMAScript 4是作为下一代的JavaScript被开发的,同时有一个用ML写成的原型.但是,TC39委员会并不完全同意它的一些新特性.为了防止陷入僵局, 委员会在2008年7月底会晤,并产生了一项协议,协议内容总结为以下四点[2]:

    • 开发一个增量式更新的ECMAScript (后来成为了ECMAScript 5).
    • 开发一个重要的新版本规范,要比ECMAScript 4更先进,但会比ECMAScript 3之后的那个版本更新跨度更大.该版本的开发代号被定为Harmony,因为这场会议的的性质就是倡导我们要和谐发展.
    • ECMAScript 4中引入的一些特性将被丢弃:包,命名空间,早期绑定.
    • 其他的想法要在成为所有的TC39成员的共识下开发.
  3. ECMAScript 5 (2009年12月)
    此版本带来了一些标准库的增强,甚至通过引入严格模式更新了语言的语义.

  4. ECMAScript.next (计划于2013年)
    从问世以来,这个版本就显得有点太过雄心勃勃了,所以它的特性被分成了两组,第一组是那些将要成为ECMAScript 5下一个版本的特性.这一版本的开发代号称之为ECMAScript.next,并且很可能成为ECMAScript 6.第二组是Harmony特性,这些特性被认为是准备还不够充分或者重要程度还不够,所以不能进入ECMAScript.next.但仍然会进入某个更新的ECMAScript版本中,比如ECMAScript.next.next.当前的目标是在2013年完成ECMAScript.next,在此之前,浏览器(主要是火狐)要实现部分规范.

总结

ECMAScript和JavaScript的关系.ECMAScript是语言的规范.而JavaScript是规范的实现,Microsoft的JScript是另外一个实现

即将到来的ECMAScript版本:

  • ECMAScript.next是ECMAScript下一版规范的开发代号(code name).使用这个术语就意味着当前讨论的特性可能会也可能不会被加入最终的规范中.
  • ECMAScript 6是ECMAScript.next的实际(最终)名称.使用这个术语就意味着当前讨论的特性一定会被添加在最终的规范中.
  • ECMAScript Harmony是ECMAScript.next的超集,意味着“ECMAScript 5之后的新特性”.这些特性可能会被添加到ECMAScript.next中,也可能被添加到ECMAScript.next.next或者更新的版本中.

资料

【JAVASCRIPT】ECMAScrip (转)的更多相关文章

  1. 3、JavaScript

    1.    JavaScript简介 1.1. JavaScript由来 Netscape 发明了 JavaScript JavaScript由Netscape 在1995年发明.早期的主要目的是处理 ...

  2. 从零开始学JavaScript一(简介)

    概要:JavaScript的组成. 各个组成部分的作用 .   一.JavaScript是一种专为与网页交互而设计的脚本语言,它的的组成  Javascript  ECMAScript(核心) DOM ...

  3. JavaScript 核心

    我们首先来看一下对象[Object]的概念,这也是 ECMASript 中最基本的概念. 对象 Object ECMAScript 是一门高度抽象的面向对象(object-oriented)语言,用以 ...

  4. javascript浮点值运算舍入误差

    问题 在javascript中整数和浮点数都属于Number数据类型(简单数据类型中的一种),我们经常会发现在打印1.0这样的浮点数的结果是1而非1.0,这是由于保存浮点数的内存空间是保存整数值的两倍 ...

  5. JAVA企业级开发-JavaScript(02)

    一.JavaScript介绍 Javascript语言诞生主要是完成页面的数据验证.因此它运行在客户端,需要运行浏览器来解析执行JavaScript代码. 特点: 交互性(它可以做的就是信息的动态交互 ...

  6. javascript系列-Class1.JavaScript基础

    欢迎加入前端交流群来py:749539640 转载请标明出处!   JavaScript概述        一个页面分成三个部分,结构,样式,行为.               HTML代表了页面的结 ...

  7. JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议

    软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...

  8. javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈

    Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...

  9. Javascript 的执行环境(execution context)和作用域(scope)及垃圾回收

    执行环境有全局执行环境和函数执行环境之分,每次进入一个新执行环境,都会创建一个搜索变量和函数的作用域链.函数的局部环境不仅有权访问函数作用于中的变量,而且可以访问其外部环境,直到全局环境.全局执行环境 ...

随机推荐

  1. spring boot 入门操作(三)

    spring boot入门操作 devtools热部署 pom dependencies里添加依赖 <dependency> <groupId>org.springframew ...

  2. vue2.0 配置 选项 属性 方法 事件 ——速查

    全局配置 silent  设置日志与警告  optionMergeStrategies   合并策略  devtools  配置是否允许vue-devtools  errorHandler    错误 ...

  3. PHP 上传文件大小限制

    配置php.ini文件 (以上传500M以下大小的文件为例) 查找以下选项并修改-> file_uploads = On ;打开文件上传选项 upload_max_filesize = 500M ...

  4. Java NIO 学习笔记五 缓冲区补充

    1.缓冲区分配 方法   以 ByteBuffer 为例 (1)使用静态方法 ByteBuffer buffer = ByteBuffer.allocate( 500 ); allocate() 方法 ...

  5. CentOS7安装docker 启动不了解决篇

    [root@test ~]# yum update [root@test ~]# yum install docker [root@test ~]# service docker start Redi ...

  6. PHP基础入门(四)---PHP数组实用基础知识

    PHP数组 数组是特殊的变量,它可以同时保存一个以上的值. ***关键词:数组基础.数组遍历.超全局数组.数组功能.数组函数. 下面来和大家分享一下有关PHP的数组基础知识,希望对你PHP的学习有所帮 ...

  7. jQuery淡入淡出的轮播图

    html结构: <div class="banna">            <ul class="img">              ...

  8. java的三大特性,封装,继承,多态

    封装 /** * 所谓封装,就是将对象具有的成员变量和成员函数包装和隐藏起来,让外界无法直接使用, * 被封装的成员只能通过某些特定的方式才能访问. * 实现封装有两个步骤: *   1.将不能暴露的 ...

  9. net::ERR_CONNCTION_ABORTED与http post request header is too large 错误

    开始浏览器报(net::ERR_CONNCTION_ABORTED)然后就一直找这个错误是怎么引起的,找了一圈也没有找到答案. 后来看了一下后台发出后台错http post request heade ...

  10. 定制Android开发者专属T恤

    之前在T社上买了一件定制的T恤,感觉质量挺不错的,那是段子张发起的众筹.正面有hello google这几个字母. 我自己本身是一个Android粉,从nexus手机到pixel手机,坚持买原生的操作 ...