ECMA 上周推出了 JavaScript 5(PDF),除了增强基础函数库之外,还引入了严格运行时模式(Strict Runtime Modes)以避免代码中的常见错误。ECMA ECMAScript 4 的努力曾以失败告终,ECMA 甚至没有发布 ECMAScript 4 细则。
过去几年,诸如Nitro,TraceMonkey 一类的 JavaScript 引擎发展迅猛,JavaScript 成了 Google Wave 一类应用的新宠。鉴于此,ECMAScript 5 在兼容目前广泛使用的 ECMAScript 3 的同时,提供了严格模式,以防止开发者犯错。
严格模式
严格模式可用以下语句声明:
"use strict;"该语句对以往的代码没有影响,但 JavaScript 5 的新运行时会进入严格模式,严格模式主要包含以下改变:
变量必须声明后才可以使用
Eval 成为保留词,同时,不可以再使用 Eval 声明变量,如 eval("var i=3"); print(i); 之类的语句会报错
8进制数字表示被禁止, 010 代表 10 而不是 8
参数中不再允许使用 delete
with 语句曾是万错之源,现被禁用
函数中不可以再出现重名参数
对象中不可以再出现重名属性
arguments 和 caller 变量现在是 immutable(不可改变) 变量
访问全局对象会报错
函数扩展
在基本函数库,也有一些变化:
Date 现在支持 ISO8601 日期格式
String 内置了 trim() 方法
引入备受欢迎的 JSON 对象
内置了 bind 操作
Array 对象内置了一些标准函数,如 indexOf(), map(), filter(), reduce()◦Object 内置了seal() 函数,防止被加入新属性,同时内置 freeze() 函数使对象变成只读状态
Object.keys() 会列出对象中所有可以枚举的属性
Object.getOwnPropertyNames() 会列出对象中所有可枚举以及不可枚举的属性
Object.getPrototypeof() 返回给定对象的原型
编译:刘清涛(35公里),CSDN特约记者,Web开发与设计师,,COMSHARP CMS开发成员,热衷 Web 技术,长期译介海外最新 Web 相关的技术文章与资讯,在 CSDN 开有专家博客。
转自:http://news.csdn.net/a/20091213/215752.html
分享到:
相关推荐
千锋Web前端教程_41_ecma5_严格模式
5. **运行时行为**:规范详细描述了类型加载、内存管理(包括垃圾回收)、异常处理、安全性控制等运行时环境的行为。这为开发者提供了关于如何在.NET环境中编写高效、安全的代码的指导。 6. **模块和程序集**:模块...
- **ECMA-262 第5版 (2009年)**:这个版本增加了许多新功能,如严格模式、新的数据类型等。 - **ECMA-262 第6版 (ES2015)**:于2015年发布,引入了模块、箭头函数、类等重要概念。 - **ECMA-262 第7版 (ES2016)**:...
JavaScript ES5,全称ECMAScript第五版,是JavaScript语言的一个重要版本,它引入了许多改进和新特性,尤其是“严格模式”(Strict Mode),旨在提高代码质量和安全性。严格模式通过在脚本或函数顶部添加一句`"use ...
第三版引入了强大的正则表达式、改进的字符串处理、新的控制语句、异常处理机制、更严格的错误定义、数字输出格式化以及对未来国际化设施和语言发展的初步考虑。此外,技术委员会仍在继续工作,致力于进一步增强语言...
1. **严格模式**:5.1版引入了“严格模式”(Use Strict),这是一种可以开启的特殊模式,限制了一些可能导致错误或不安全行为的语法,如变量未声明就使用、重复声明变量等,从而提高代码质量。 2. **函数表达式与...
- **严格的 ECMAScript 变体**:引入了“严格模式”,以提高代码质量和避免潜在错误。 - **定义**:给出了术语和概念的定义。 6. **符号约定**:解释了规范中使用的语法和格式。 - **语法和词法语法**:定义了...
ECMAScript规范还定义了严格模式(strict mode),它提供了一种方式来声明代码遵循更严格的语法和语义,这有助于提供更清晰的错误信息和更优化的JavaScript引擎。 此外,ECMAScript规范还包含内置对象和类型的详细...
标题“ECMA-352 NFC规范”指的是一项由Ecma国际组织制定的标准规范,涉及到近距离无线通讯技术(Near Field Communication,简称NFC)的接口和协议。NFC技术允许设备在13.56 MHz的频率下进行无线近距离通信。这个...
### 关于Standard ECMA-290:ECMAScript组件规范 #### 一、标准概述 **Standard ECMA-290** 是一项由欧洲计算机制造商协会(ECMA International)发布的标准,旨在定义ECMAScript组件的具体规范。该标准基于ECMA-...
两年后,即2009年12月,ECMAScript 5.0发布,为了解决JavaScript的一些历史问题,比如变量作用域和对象属性的访问控制,ES5引入了严格模式,使得脚本执行更加严格和规范。 2011年6月,ECMAScript 5.1版发布,该版本...
try...catch语句用于捕获和处理运行时错误。 **9. 正则表达式** JavaScript支持正则表达式,用于模式匹配和字符串操作。它们有自己的语法和方法,如.test()、.match()等。 **10. 数组和集合** JavaScript提供了...
ECMA-262规范的文档不仅定义了ECMAScript语言的语法、类型、语句、对象模型和程序的规则,还说明了ECMAScript引擎在运行时如何处理各种脚本。规范中,ECMA-262标题下还包含了规范的引用编号“ECMA-123:2009”,这...
### Ecma-262标准概述 #### 一、标题解析 **Ecma-262** 是一个关于 ECMAScript 语言规范的标准文档。该文档由欧洲计算机制造商协会(ECMA International)发布,旨在标准化 ECMAScript 语言,使其成为国际上广泛...
CLI是ECMA335的核心组成部分,它提供了一个统一的运行时环境,支持多种编程语言的执行。CLI的主要特点包括: 1. **类型安全**:CLI确保所有代码都是类型安全的,即数据类型不会在运行时发生改变。 2. **内存管理**...
- **发布信息**:此文档为 ECMA-335 的第 5 版,发布于 2010 年 12 月。 - **版权保护**:文档受版权保护,允许在保留版权信息的情况下进行复制和传播,但不允许修改文档本身,除非是出于开发 ECMA International ...
3. **ECMAScript 5**:ECMA5是JavaScript的一个版本,它引入了许多改进,如严格模式、对象字面量扩展、数组和对象的遍历方法等。尽管它不包含内置的模块系统,但其强大的功能和广泛的浏览器支持使其成为早期模块化...
ECMAScript的标准还包含了“严格模式”(strict mode),这是一种更严格的语言变体,旨在消除某些语言特性可能导致的意外行为,并提高程序性能。例如,严格模式禁止使用未声明的变量,强制函数参数必须是有效的...
5. **Lambda表达式和Linq**:C#引入了简洁的lambda表达式,配合LINQ(Language Integrated Query),可以方便地进行数据查询和操作,尤其是在数据库交互和集合处理上。 6. **异步编程**:C#的async/await关键字简化...