JSON.parse( text, translate )
JSON.stringify( obj, translate )
String.prototype.toJSON
Boolean.prototype.toJSON
Number.prototype.toJSON
Date.prototype.toJSON
MDC文档:http://blog.mozilla.com/webdev/2009/02/12/native-json-in-firefox-31/
MSDN文档:http://blogs.msdn.com/ie/archive/2008/09/10/native-json-in-ie8.aspx
支持:Firefox 3.5+, IE8+
替代/过渡:json2.js http://www.json.org/json2.js
ECMAScript 5 Array Extras
js1.6里实现的数组方法,主要是forEach, map, fliter这几个函数式编程里非常重要的方法,还有反向查询
Array.prototype.indexOf( str )
Array.prototype.lastIndexOf( str )
Array.prototype.every( fn )
Array.prototype.some( fn )
Array.prototype.filter( fn )
Array.prototype.forEach( fn )
Array.prototype.map( fn )
MDC文档:https://developer.mozilla.org/en/New_in_JavaScript_1.6#Array_extras
支持:Firefox2.0+, Safari 3.0+, Google Chrome 1.0+, Opera 9.5+
替代/过渡:都可以通过扩展Array.prototype来模拟
ECMAScript 5 isArray()
区分数组和对象
Array.isArray([]); // true
支持:无
替代/过渡:Array.isArray = function(a){ return Object.prototype.toString.call(a) === “[object Array]”;};
ECMAScript 5 Object
用GOOGLE I/O演讲里的话来说:更鲁棒(robust)的对象系统
Object.getPrototypeOf( obj )
约翰同学的讲解:http://ejohn.org/blog/objectgetprototypeof/
支持:Firefox3.5
替代/过渡:object.__proto__ 或 object.constructor.prototype
Object.create( proto, props ) //克隆或继承对象
Object.keys( obj ) //数据结构的映射
Object.getOwnPropertyNames( obj )
Object.preventExtensions( obj ) //不能添加新属性
Object.isExtensible( obj )
Object.seal( obj ) //不能删除和修改属性的配置,不能添加新属性
Object.isSealed( obj )
Object.freeze( obj ) //不能删除和修改属性的配置,不能添加新属性,不能写属性
Object.isFrozen( obj )
约翰同学的讲解:http://ejohn.org/blog/ecmascript-5-objects-and-properties/
支持:无
替代/过渡:Object.create和Object.keys可以自己实现
ECMAScript 5 Property Descriptor
对象属性的访问控制
Object.getOwnPropertyDescriptor( obj, prop )
Object.defineProperty( obj, prop, desc )
Object.defineProperties( obj, props )
desc = {
value: true,
writable: false, //修改
enumerable: true, //for in
configurable: true, //删除和修改属性









