ECMA-5重点知识汇总

本文详细探讨了JavaScript中对象属性的特性,包括枚举、配置、写入等属性,以及如何使用Object.defineProperty、Object.keys、Object.getOwnPropertyNames等方法来管理和访问这些属性。同时,文章还介绍了如何使用Object.seal、Object.freeze、Object.preventExtensions等方法来限制对象的修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【 var obj1=Object.create({},{getFoo:{value:function(){return this.foo}}});//第一个参数为对象的原型,第二个参数是对象的一组属性和值】

 

【/* Object.defineProperty(obj1,"sex",{

value:"male", //属性值

enumerable:false , //false表示此属性不可枚举

configurable:false, //false表示不可删除

writable:false //false表示不可修改

 

});】

console.log(Object.keys(obj1));//keys(obj1)为obj1中的可枚举属性

for(var num in obj1){ //num为obj1中的可枚举属性名

console.log(obj1[num]);

}

var arr1=['1','2','4'];

for ( var key in arr1) {

console.log(arr1[key]);

}

 

console.log(Object.getOwnPropertyNames(obj1));//返回obj1的所有属性的属性名(包括不可枚举的属性)

 

 function animal(specis){

this.specis=specis;

}

var cat1=new animal('爬行动物');

var cat2=new animal();

d=Object.getOwnPropertyDescriptor(cat2,'specis');//检测cat2对象中是否有specis这个属性并返回该属性的描述

console.log(d);

console.log(cat1.specis);

Object.seal(cat1);//将cat1密封 */

/* Object.defineProperty(cat1,'specis',{ //会报错,因为被密封的对象只能修改其value值,其他操作是不合法的

configurable:true

}); */

/* cat1.specis='猫科动物';

console.log(cat1.specis); */

/*Object.freeze(obj2);//冻结此对象,指这个对象是永远不变的*/

/*Object.preventExtensions(cat2);//让此对象不能拓展,指不能添加新的属性*/

/*Object.isExtensible(cat2);//判断此对象是否是可拓展的*/

/*Object.isSealed(obj)//判断一个对象是否是密封的*/

/* Object.isFrozen(obj)//判断一个对象是否被冻结 */

/* obj.propertyIsEnumerable(prop)//返回一个布尔值,表明指定的属性名是否是当前对象可枚举的自身属性。 */

/* var arr = [];

console.log(arr instanceof Array);//true 检测 Array.prototype 是否在arr 的原型链中,而不是检测Array 自身

console.log(Array.prototype.isPrototypeOf(arr));//true 检测Array是否在arr的原型链中 */

/*var module={

x:81,

fuu:function(){return this.x;}

};

var x=20;

console.log(module.fuu());

var kit=module.fuu;

console.log(kit());

var bindGetx=kit.bind(module);//导致原函数运行时的this指向为module

console.log(bindGetx());

var array1=[5,8,11];

var num=array1.indexOf(5);//返回出现5的最小位置索引即0

console.log(num);

 

function isBigNum(num){

return num>=10;

}

var test1=array1.every(isBigNum);//判断数组中是否所有的元素都使isBigNum返回true

var test2=array1.some(isBigNum);//判断数组中是否存在元素使isBigNum返回true

alert(test1);

alert(test2);

var Now_time=Date.now();

alert(Now_time);//返回自1970年1月1日 00:00:00 UTC到当前时间的毫秒数。

 

var today = new Date("05 October 2011 14:48 UTC");

console.log(today.toISOString()); */// 返回2011-10-05T14:48:00.000Z 返回一个 ISO(ISO 8601 Extended Format)格式的字符串 加一个后缀“Z”标识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值