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