对象解构:
基本;有剩余值运算符...rest;有默认值;解析对象不分顺序(变量名要和键名一致);
【对象】
1.对象的简写(变量名和对象的键一致的时候才可以);
2.对象属性表达式[];
3.对象的拷贝 合并 Object.assign();
4.对象扩展... {...a,...b}复制与合并对象;
【对象数据类型的弱点】
1.对象的键名只能是字符串或者symbol;
2.对象没有顺序;
3.对象的长度需要手工才能计算出来;
js中对象常用方法
Object.assign()
… 用于克隆
var first = {name : 'kong'};
var last = {age : 18};
var person = Object.assign(first, last);
console.log(person);//{name : 'kong', age : 18
Object.is()
…用于判断两个值是否相同
Object.is(a, b);//返回true或false
//注意,该函数与==运算符不同,不会强制转换任何类型,
应该更加类似于===,但值得注意的是它会将+0和-0视作不同值
Object.keys()
…用于返回对象可枚举的属性和方法的名称
var a = {name : 'kong', age : 18, func : function(){}};
Object.keys(a); //['name', 'age', 'func']
Object.defineProperty()
…劫持变量的set和get方法,将属性添加到对象,或修改现有属性的特性
var a = {};
Object.defineProperty(a, 'name', {
value : 'kong',
enumerable : true //该属性是否可枚举
})
Object.defineProperties()
…可添加多个属性,与Object.defineProperty()对应,
Object.defineProperties(a, {
name : {
value : 'kong',
enumerable : true
},
job : {
value : 'student',
enumerable : true
}
})
isPrototypeOf
…确定一个对象是否存在于另一个对象的原型链中
function a(){}
var b = new a();
console.log(a.prototype.isPrototypeOf(b));//true