对象的定义:
JS中,对象是一组无序的相关属性和方法的集合,对象是由属性和方法构成的。
声明对象的两种语法
创建对象有两种方法:
- 对象字面量
let 对象名 = {
key1: value1,
key2: value2,
};
- new Object创建对象
let obj = new Object();
如何删除对象的属性
- 使用delete关键字来删除对象的属性
let obj = {
'name': 'zhangsan',
'age': 18
}
delete obj.name; //或者delete obj['name'];
注意一点,如果obj.name = undefined,使用obj.name === undefined 并不能判断'name'是否是obj的属性,因为如果本来就没有'name'属性的话,查看obj['name'],返回的也是undefined
- 使用in操作符验证obj是否含有某个属性名
let obj = {
'name': 'zhangsan',
'age': 18
}
delete obj.name;
console.log('name' in obj); //false
如何查看对象的属性
- 获取对象的单个属性的值
let obj = {
'name': 'zhangsan',
'age': 18
}
console.log(obj['name']); //或者obj.name 这里的name是一个字符串而非变量,这很重要
//比如遍历对象
for(key in obj) {
console.log(obj[key]); // 这里的key就是一个变量
}
- 查看对象所有属性
Object.keys(obj)
,返回一个由obj的所有key组成的数组 - 查看对象所有值
Object.values(obj)
,返回一个由obj所有的value组成的数组 - 将所有的key和value以数组的形式展示:
let obj = {
'name': 'zhangsan',
'age': 18
}
console.log(Object.entries(obj));
// [['name', 'zhangsan'], ['age', 18]]
- 判断一个属性是否是对象自有的(非共有属性)
obj.hasOwnProperty('key')
这是一个函数
如何修改或增加对象的属性
对象属性的增加或者更新有两种方式:
- 直接赋值
let obj = {
'name': 'zhangsan',
'age': 18
}
obj.name = 'lisi';
//或者 obj['name'] = 'lisi';
// 或者 let uname = 'name'; obj[uname] = 'lisi';
- 批量赋值
Object.assign(obj, { 'name': 'lisi', 'hobby': 'rap' });
- 对象更新属性时,如果本来存在此属性,则更改属性的值,如果不存在,则增加一个新属性
name' in obj和obj.hasOwnProperty('name') 的区别
in操作符只能检查对象自身是否含有此属性,而hasOwnProperty函数可以检查此属性是对象的自身属性还是共有属性