84   JS

ES5 已经发布好久,各大浏览器已经大部分支持,来看看有哪些主要的特性

1,Object, 新增很多方法,更便于控制 Object

 

Object.create(prototype,descriptors) 以指定的原型创建对象,并且可以(可选)的设置对象的属性
Object.defineProperty(object, propertyname, descriptor) 对指定的对象的一个属性设置丰富的值控制
Object.defineProperties(object, descriptors) 对指定的对象的一组属性提供丰富的值控制
······

其中 defineProperty 可以实现属性get/set的回调,达到双向绑定的效果,VueJS就是通过这个方法实现的MVVM,具体文章可参考这里

 

2,Array,也新增了很多方法,更便于操作 Array

 

Array.prototype.indexOf //测试一个元素是否存在于一个集合中
Array.prototype.lastIndexOf //类似indexOf,除了它从数组的末尾开始搜索元素
Array.prototype.every //集合中的所有项目是否满足指定的条件
······

 

3,use strict, 严格模式的语法检查,主要是了规范代码编写,比如变量没有 var 会报错,不兼容此特性的就不会检查

 

 

4,Function.prototype.bind(this),新增函数,将this绑定到对象内,以便调用,以下为代码

 
var nobind = {
value : '1',
test:function(){
var a = function (){
console.log("nobind:");
console.log(this.value);
};
a();
}
}

var hasbind = {
value : '1',
test:function(){
var a = function (){
console.log("hasbind:");
console.log(this.value);
}.bind(this);
a();
}
}

 

5,JSON.stringify/JSON.parse,新增全局的JSON对象,便于序列化和反序列json




Leave a Reply

Your email address will not be published. Required fields are marked *