原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es5.htmljavascript
本文将简单列举ES5的核心特性。ES5多半是扩展原生对象的功能,让Object
、Array
、Function
更增强大。其余的特性包括strict mode
和一下期待已久的工具方法(例如JSON.parse
等)。java
ES5的大部分特性1都在主流浏览器(IE9+)中支持了。并且大部分特性,均可以经过Javascript垫片(pollyfill)在运行时环境实现2。git
全部对象操做中,若是o
不是Object
类型,将会抛出TypeError
异常。github
获取给丁对象的prototype
对象。等价于之前的o.__proto__
。数组
获取对象描述。和Object.defineProperty
的相关方法。浏览器
获取自有属性名列表。结果列表将不包含原型链上的属性。编辑器
以给丁对象o
为prototype
建立新的对象并返回。若是对象描述p
存在,就使用其定义刚建立的对象(相似调用Object.defineProperties(obj,p)
)。函数
根据规则attrs
定义对象o
上,属性名为p
的属性工具
根据对象描述props
来定义对象o
,一般props
包含多个属性的定义。
一个对象在默认状态下,
Object.seal
会改变这两个特性,既不能扩展新属性,也不能修改已有属性的特性。
将对象的每一个自有自有属性(own property)作以下操做:
writable
特性置为false
configurable
特性置为false
同时,该对象将不可扩展。可见,该方法比Object.seal
更加严格的限制了对一个对象的将来改动。
将对象置为不可扩展。
判断一个对象是否sealed
:
configurable
特性为true
,则返回false
extensible
的,那么返回false
true
configurable
或writable
特性为true
,则返回false
extensible
的,那么返回false
true
判对一个对象是否可扩展。
返回对象o
的全部可枚举(enumerable
)属性的名称。
检查对象是不是位于给定对象v
的原型链上。
检查一个对象上的属性p
是否可枚举。
判断a
是否为为真正的Array
。
使用“严格等”来判断元素e
在数组中的索引号。一个可选的搜索起点i
。
获取元素e
在数组中最后出现的位置。起始位置i
为可选。
测试数组中的每一个元素都知足测试t
。以后介绍的全部数组遍历方法,都支持一个可选的上下文对象c
,能够灵活设置回调函数的执行上下文。传递给数组的测试函数、遍历函数一般有以下签名:
function(item, index, array) {}
测试数组中是否有元素知足测试t
。
使用函数f
遍历每一个数组的元素。
使用函数f
修改每一个数组的每一个元素。按顺序收集f
的每一个返回值,并返回这个新组成的数组。
收集经过函数测试f
的书组元素。
从左向右,使用函数r
汇集数组的每一个元素。能够可选的制定一个初始值v
。
Array.prototype.reduce
的从右向左的版本。
去掉字符串两头的空白符和换行符。
//property access on strings "abc"[2] === "b"
为了指定当前函数的上下文对象和运行参数,该函数建立一个新的函数,保留给定的this
对象和运行参数。
根据rfc462722标准解析JSON文本。
将指定的对象obj
序列化为JSON文本。
获取当前时间距1970.1.1 00:00:00
的毫秒数。
根据ISO860123生成时间字符串。
(new Date).toISOString() '2014-04-02T08:31:53.049Z'
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/GetPrototypeOf ↩
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor ↩
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames ↩
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/create ↩
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty ↩
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperties ↩
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/seal ↩
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/freeze ↩
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/preventExtensions ↩
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isSealed ↩
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isFrozen ↩
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isExtensible ↩
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys ↩
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isPrototypeOf ↩
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf ↩
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf ↩
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reduce ↩
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reduceRight ↩
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind ↩
http://stackoverflow.com/questions/8099270/use-of-reserved-words-in-javascript ↩