ECMAScript 5 规范包含对其范围的以下描述
ECMAScript 第五版(作为 ECMA-262 第五版发布)
- 编纂了语言规范的事实上的解释,这些解释已在浏览器实现中变得普遍,并且
增加了对自第三版发布以来出现的新功能的支持。这些功能包括
- 访问器属性,
- 对象的反射创建和检查,
- 属性属性的程序控制,
- 其他数组操作函数,
- 对 JSON 对象编码格式的支持,以及
- 提供增强的错误检查和程序安全性的严格模式。
ECMAScript 5 中包含的新特性如下:
在文件或函数的第一行放置以下行将打开所谓的严格模式,该模式通过禁止某些功能、执行更多检查和抛出更多异常来使 JavaScript 成为一种更简洁的语言:
'use strict'
;
获取器和设置器允许您通过方法实现属性的获取和设置。例如,以下对象obj
包含属性foo
的获取器:
> var obj = { get foo() { return 'abc' } }; > obj.foo 'abc'
ECMAScript 5 包括以下语法变化:
您可以在点运算符之后以及在对象字面量中作为未加引号的属性键使用保留字(例如new
和function
):
> var obj = { new: 'abc' }; > obj.new 'abc'
ECMAScript 5 对 JavaScript 的标准库进行了一些补充。本节按类别列出它们。
获取和设置原型(请参阅获取和设置原型)
Object.create()
Object.getPrototypeOf()
Object.defineProperty()
Object.defineProperties()
Object.create()
Object.getOwnPropertyDescriptor()
Object.keys()
Object.getOwnPropertyNames()
Object.preventExtensions()
Object.isExtensible()
Object.seal()
Object.isSealed()
Object.freeze()
Object.isFrozen()
新的Function
方法(请参阅Function.prototype.bind(thisValue, arg1?, ..., argN?))
Function.prototype.bind()
字符串(请参阅第 12 章)
String.prototype.trim()
[...]
访问字符Array.isArray()
Array.prototype.every()
Array.prototype.filter()
Array.prototype.forEach()
Array.prototype.indexOf()
Array.prototype.lastIndexOf()
Array.prototype.map()
Array.prototype.reduce()
Array.prototype.some()
Date.now()
Date.prototype.toISOString()
JSON.parse()
(请参阅JSON.parse(text, reviver?))JSON.stringify()
(请参阅JSON.stringify(value, replacer?, space?))一些内置对象有特殊的toJSON()
方法
Boolean.prototype.toJSON()
Number.prototype.toJSON()
String.prototype.toJSON()
Date.prototype.toJSON()