`
muyu
  • 浏览: 222715 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ECMAScript 5正式发布

阅读更多

这周ECMAScript 5也即众所周知的JavaScript正式发布了(pdf ),在给基本库带来更新的同时,还引入了更加严格的运行时模型,来帮助定位并移除通常的代码错误。

而早期对于ECMAScript 4 的标准化工作基本就算是失败了;只有Adobe的ActionScript是基于建议的变化的。ECMA甚至都没有发布一个版本4的规范,因为不同的组织对于发展的进度并不满意;就这样,也没有浏览器来支持它了。

在过去的几年,随着JavaScript引擎的大力改善,比如NitroTraceMonkey ,JavaScript已经极具性能,以Google Wave 为代表的在线协作应用可以证明这一点。甚至还有伴随GWT 2.0 发布的Google Chrome 扩展Speed Tracer ,来帮助优化JavaScript应用的性能。

从这点上来讲,ECMAScript 5旨在和当前的ECMAScript 3版本保持向后兼容(以寻求在不同浏览器上更快速的采用),并对开发者提供了更加严格的限制来避免通常的编码陷阱。

严格模式

严格模式的引入,目的在于避免ECMAScript应用中通常的代码问题。这是通过在单元(脚本或函数)上指定一句话来达到的:

"use strict;"

这句话不会对已有的运行时产生什么影响,但版本是5的新运行时就会为整个脚本(如果这句话定义在脚本开头)或者单个函数(如果定义在函数的开头)打开严格模式。这样就允许计划中的既有代码对严格模式和非严格模式的混合使用。那么,严格模式意味着什么呢?

  • 变量在使用前必须声明。换句话说,i=3这下就是个运行时错误了;需要var i=3(如果i在做作用域里面没有定义过)
  • eval变成保留字,而从eval引入的新变量不再有效,因此eval("var i=3"); print(i);现在会抛出错误。
  • 不再使用八进制;所以010就是十,不再是八。
  • 如果configurable被设置成false,delete就不能使用在参数、函数、变量或者其他属性上。
  • 一般会带来错误的with语句,将不再使用,会被认为是语法错误。
  • 函数不再能使用具有相同名称的重复参数。
  • 对象不再能使用具有相同名称的重复属性。
  • arguments和caller变量不再可变。
  • 对全局对象的访问将会是运行时错误。

库扩展

基本库中的其他扩展包括:

  • Date现在可以支持生成ISO8601格式的日期(比如20091209T12:34:56Z ),并可以解析。
  • String现在有内建的trim()方法
  • 新添JSON对象包括parse和stringify方法来支持JSON数据的高效生成;就像eval,但在减少代码时不会带来安全影响。另外,不仅仅可以使用RFC 4627 中的JSONObject和JSONArray,还可以使用JSONValue。(RFC 4627把JSON-Text限制成一个对象或者数组)
  • 新添bind内建方法,就跟Prototype的bind方法 的语义一样。
  • 数组现在可以支持indexOf(),map(),filter()和reduce()。
  • 对象现在有seal()方法(防止添加新的属性和删除既有属性)和freeze()方法(使得所有属性变成只读,同时防止新添属性或删除属性)
  • Object.keys()可以列出所有能列举的对象属性。
  • Object.getOwnPropertyNames()可以列出所有能列举和不能列举的属性。
  • Object.getPrototypeof()可以得到指定对象的prototype属性。

总结

新增的标准JSON对象解析机制和严格模式将会让开发者受益良多,使得转化成Prototype和其他扩展库需要的更小型库成为可能。从JSON流解析出ISO日期现在要变得比以前方便很多,而且看起来会成为将来日期表示事实上的标准。最后,因为这次是向后兼容的,并从Prototype这样既有库获得灵感,开发者和web浏览器很有可能在不久将来会为JavaScript带来新的特性。

 

原文:http://www.infoq.com/cn/news/2009/12/ecmascript5

分享到:
评论

相关推荐

    ecmascript 6 入门.pdf

    ECMAScript 6(ES6),是JavaScript语言的下一代标准,于2015年6月正式发布。它由ECMA国际标准化组织制定,旨在让JavaScript能够编写大型的复杂应用程序,成为企业级开发语言。ES6的制定者计划每年发布一次标准,...

    高性能JavaScript 2015版本 ECMAScript 6入门 JavaScript 5

    首先,JavaScript 5是ECMAScript规范的一个版本,于2009年正式发布。它奠定了现代JavaScript的基础,引入了严格模式("use strict")来帮助开发者编写更安全、更可靠的代码,并对对象和数组进行了优化,提高了性能。...

    ECMAScript6 入门及环境搭建

    ECMAScript 6(简称ES6)是JavaScript语言的一个重要版本更新,它在2015年正式发布,为JavaScript语言带来了大量的新特性和改进。在详细介绍ES6之前,我们需要了解JavaScript的历史以及它与ECMAScript标准的关系。 ...

    ECMAScript 6入门.pdf

    ES6在2015年6月正式发布,并且按照计划,标准制定者计划每年发布一次标准,新版本将使用发布年份来命名,例如2015年发布的版本也被称为ES2015,而下一年则会发布ES2016。 了解ECMAScript 6的入门知识,首先需要明白...

    es5:ecmascript 5 中文版 + es合集

    **ECMAScript 5(ES5)** 是JavaScript语言的一个版本,它在2009年发布,并在现代Web开发中扮演着重要角色。ES5是ECMAScript标准的第五版,由欧洲计算机制造商协会(ECMA)制定,旨在提供一个标准化的脚本语言,以...

    《ECMAScript2016标准入门(第三版)》_阮一峰最新版

    ECMAScript 2016(也称为ES2016或ES7)是ECMAScript语言的一个版本,它是在2016年正式发布的。作为JavaScript的核心规范,ECMAScript的发展始终与Web开发紧密相关。自1997年首次发布以来,ECMAScript经历了多次重大...

    ECMAScript Edition 4 Draft

    ECMAScript Edition 4 Draft是为定义ECMAScript第四版...最终ECMAScript第四版的特性也可能会因为社区和开发者反馈而有所调整,而ECMAScript的最新标准可以通过ECMA TC39委员会的工作和ECMAScript的发布年历来查找。

    ECMAScript+6入门

    该标准于2015年6月正式发布。 - **发展目标**:ES6的目标是让JavaScript成为一种更加健壮的语言,以便开发者可以构建大型应用程序。 - **版本命名规则**:自ES6之后,ECMAScript每年都会进行一次更新,并以发布年份...

    快速学习ECMAScript6

    ES6即ECMAScript 2015,是在2015年正式发布的ECMAScript标准的第六版,它在ES5的基础上进行了大量扩展,为开发人员提供了更多的工具来编写复杂的程序。ES6的一些新特性包括类、模块、Promise等。 2. 学习ES6的途径 ...

    ECMAScript 6入门 第二版 阮一峰 pdf完整版

    ES6的另一个名称是ECMAScript 2015,因为它的正式发布时间是在2015年。按照计划,ES6的后续版本也会以发布年份命名,比如下一个版本将被称为ES2016。ES6的制定目标之一是每年更新一次版本,这表示JavaScript语言将...

    EcmaScript_fifth_edition

    自1997年首次发布以来,该规范经历了多次更新和完善,EcmaScript第五版(简称ES5)是其中的一个重要版本,它在2009年12月正式发布,并于2011年进行了微调(5.1版),进一步明确了语言特性。 #### 二、重要特性 ###...

    ECMAScript 6 入门

    ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准,自2015年6月正式发布以来,旨在让JavaScript能更好地适应现代编程的需求,特别是用于编写复杂大型应用程序,成为企业级开发语言。ES6引入了大量新特性,...

    Ecma-262.rar_ECMA-262_ECMAScript_javascript

    ECMAScript,通常简称为ES,是JavaScript语言的标准化规范,由欧洲计算机制造商协会(ECMA International)发布。标题中的"Ecma-262.rar"指的是这个规范的文档集合,而"ECMA-262"是该规范的正式版本号,它定义了...

    ECMAScript规范-第三版_中文版.

    ECMAScript,通常简称为ES,是JavaScript语言的标准化规格,由欧洲计算机制造商协会(ECMA International)制定并发布。这个规范定义了编程语言的语法、类型、语句、对象、函数以及各种特性,旨在促进JavaScript在...

    ECMAScript 6 Succinctly

    ECMAScript 6(简称ES6)是JavaScript语言的第六版,于2015年正式发布,引入了大量新特性,极大增强了JavaScript的编程能力。ES6 Succinctly是一本专注于ES6特性的教程书籍,旨在帮助开发者快速理解和掌握ES6的新...

    ECMAScript6规范

    ECMAScript6,简称ES6,是JavaScript语言的第六次重要更新,于2015年正式发布,其官方编号为ECMA-262的第6版,也被称作ECMAScript 2015(ES2015)。ES6规范引入了许多新的语法特性与功能,这些改变为JavaScript语言...

Global site tag (gtag.js) - Google Analytics