这是关于object的新api
<script> function box(name) { this.name = name; this.age = 26; } var obj = {name:'hanyu',age:26}; var obj1 = Object.create(obj)//根据此对象为原型创建一个对象 //console.log(new box().constructor);//构造函数 //console.log(JSON.stringify(obj));// Object.defineProperty(obj1,'nickname',{ value:'rocky', writable: false,//是否能修改 enumerable: true,//可枚举性 /*可枚举性 可枚举性(enumerable)用来控制所描述的属性,是否将被包括在for...in循环之中。具体来说,如果一个属性的enumerable为false,下面三个操作不会取到该属性。 * for..in循环 * Object.keys方法 * JSON.stringify方法 */ configurable: false })//与defineProperties不同的是,它只能定义一个属性 Object.defineProperties(obj1, { 'age': { value: 24, writable: false,//是否能修改 enumerable: true,//可枚举性 configurable: false, //当把configurable设置为false,就不能从对象中删除属性,在严格模式下会导致错误.一旦把属性定义为不可配置,就不可以通过Object.defineProperty()方法再重新修改属性特性.不然会抛出错误 /*set:function (value) {//设置对象的时候触发,不能和value和writable共存 console.log(value); }, get:function () {//获取对象属性时候触发,其他同上 console.log('获取属性'); }*/ }, 'sex': { value: 'male', writable: false, enumerable: false, configurable: false } });// /*console.log(Object.getOwnPropertyDescriptor(obj1,'age'));//查看定义此属性时候的配置 console.log(Object.getOwnPropertyNames(obj1));//获取所有属性名 console.log(Object.keys(obj1));//获取所有可枚举的属性名 这里没有了sex console.log(obj1);*/ /*console.log(Object.isExtensible(obj1));//判断对象是否可以扩展,就是不能增加新的属性,但是属性的值仍然可以更改,也可以把属性删除 Object.preventExtensions(obj1);//锁住对象 obj1['bbb'] = 1231414;//这里并没有添加成功 console.log(obj1);*/ /*Object.seal(obj1);//密封对象,既不可以扩展也不可以删除,但是还可以修改 Object.isSealed(obj1);//判断对象是否密封 obj1['aaa'] = 1;//这里的添加不起作用 delete obj1['sex'];//这里的删除也不起作用 console.log(obj1['sex']);*/ /*Object.freeze(obj1);//冻结对象,不能修改 不能删除 不能扩展 Object.isFrozen(obj1);//判断对象是否被冻结*/ /*var str = ' 13134314 ';//去掉字符串两边空格 同理于jquery trim console.log(str.trim());*/ </script>
关于array的api方法
<script> var arr = [1,2,3,4,5,6,7,8,9]; var arr1 = [1,1,3,4,5,6,7,9,10]; var arr2 = [1,2]; /*console.log(arr); //console.log(arr1.sort(function (v1,v2) {return v1<v2;}));//倒叙排列数组 console.log(Array.isArray(arr));//判断是否为数组 //arr.splice(0,1,4,4,4,4,4);//第三个参数以后输入替换的数值,不输入则只删除,此函数会自动调整索引 修改原数组 console.log(arr); console.log(arr1.indexOf(1));//查找到第一个为止*/ //console.log(arr1.sort());//默认按字符顺序 所以10到了第二位 /*//循环数组 arr1.map(function (e) { console.log(e); }) //根据自定义条件过滤数组 arr1.filter(function (e) { return e>2; });*/ /*//将数组元素合成一个值 var b = arr2.reduce(function (v1,v2) { return v1+v2; },100) var b = arr2.reduceRight(function (v1,v2) { console.log(v1); console.log(v2); return v1-v2; },100)//如果有初始值,则v1为初始值,v2为数组里元素的和*/ </script>