原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es5.html
- 本文须要补充更多例子
- 本文存在讲明,但该网站的Markdown编辑器不支撑,所以没法一般展现,请到原文参考。
ES5特征
本文将简朴罗列ES5的中心特征。ES5多半是扩大原生对象的功用,让Object
、Array
、Function
越发壮大。其他的特征包括strict mode
和一下期待已久的东西要领(比方JSON.parse
等)。
ES5的大部分特征1都在主流浏览器(IE9+)中支撑了。而且大部分特征,都能够经由过程Javascript垫片(pollyfill)在运转时环境完成2。
Object
一切对象操纵中,假如o
不是Object
范例,将会抛出TypeError
非常。
Object.getPrototypeOf(o)3
猎取给丁对象的prototype
对象。等价于之前的o.__proto__
。
Object.getOwnPropertyDescriptor(o,p)4
猎取对象形貌。和Object.defineProperty
的相干要领。
Object.getOwnPropertyNames(o)5
猎取自有属性名列表。效果列表将不包括原型链上的属性。
Object.create(o,p)6
以给丁对象o
为prototype
建立新的对象并返回。假如对象形貌p
存在,就运用其定义刚建立的对象(相似挪用Object.defineProperties(obj,p)
)。
Object.defineProperty(o,p,attrs)7
依据划定规矩attrs
定义对象o
上,属性名为p
的属性
Object.defineProperties(o,props)8
依据对象形貌props
来定义对象o
,一般props
包括多个属性的定义。
Object.seal(o)9
一个对象在默许状态下,
- extensible: 能够增加新的属性
- configurable: 能够修正已有属性的特征
Object.seal
会转变这两个特征,既不能扩大新属性,也不能修正已有属性的特征。
Object.freeze(o)10
将对象的每一个自有自有属性(own property)做以下操纵:
- 属性的
writable
特征置为false
- 属性的
configurable
特征置为false
同时,该对象将不可扩大。可见,该要领比Object.seal
越发严厉的限定了对一个对象的将来修改。
Object.preventExtensions(o)11
将对象置为不可扩大。
Object.isSealed(o)12
推断一个对象是不是sealed
:
- 对象的每一个自有属性:假如属性的
configurable
特征为true
,则返回false
- 假如对象为
extensible
的,那末返回false
- 不满足以上两个前提,则返回
true
Object.isFrozen(o)13
- 对每一个自有属性,假如该属性的
configurable
或writable
特征为true
,则返回false
- 假如对象为
extensible
的,那末返回false
- 不满足以上两个前提,则返回
true
Object.isExtensible(o)14
判对一个对象是不是可扩大。
Object.keys(o)15
返回对象o
的一切可罗列(enumerable
)属性的称号。
Object.prototype.isPrototypeOf(v)16
搜检对象是不是是位于给定对象v
的原型链上。
Object.prototype.propertyIsEnumerable(p)
搜检一个对象上的属性p
是不是可罗列。
Array
Array.isArray(a)
推断a
是不是为为真正的Array
。
Array.prototype.indexOf(e,i)17
运用“严厉等”来推断元素e
在数组中的索引号。一个可选的搜刮出发点i
。
Array.prototype.lastIndexOf(e,i)18
猎取元素e
在数组中末了涌现的位置。肇端位置i
为可选。
Array.prototype.every(t,c)
测试数组中的每一个元素都满足测试t
。以后引见的一切数组遍历要领,都支撑一个可选的上下文对象c
,能够天真设置回调函数的实行上下文。传递给数组的测试函数、遍历函数一般有以下署名:
function(item, index, array) {}
Array.prototype.some(t,c)
测试数组中是不是有元素满足测试t
。
Array.prototype.forEach(f,c)
运用函数f
遍历每一个数组的元素。
Array.prototype.map(f,c)
运用函数f
修正每一个数组的每一个元素。按递次网络f
的每一个返回值,并返回这个新构成的数组。
Array.prototype.filter(f,c)
网络经由过程函数测试f
的书组元素。
Array.prototype.reduce(r,v)19
从左向右,运用函数r
群集数组的每一个元素。能够可选的制订一个初始值v
。
Array.prototype.reduceRight(r,v)20
Array.prototype.reduce
的从右向左的版本。
String
String.prototpye.trim
去掉字符串两端的空白符和换行符。
字符定阅
//property access on strings
"abc"[2] === "b"
Function
Function.prototype.bind(thisTarget, arg1,…argn)21
为了指定当前函数的上下文对象和运转参数,该函数建立一个新的函数,保存给定的this
对象和运转参数。
JSON
JSON.parse(text)
依据rfc462722规范剖析JSON文本。
JSON.stringify(obj)
将指定的对象obj
序列化为JSON文本。
Date
Date.now
猎取当前时候距1970.1.1 00:00:00
的毫秒数。
Date.prototype.toISOString
依据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 ↩