1.声明对象的两种方法
-
Object b = {'title':'everthing','number:200}
-
Object b2 = new Object ({'title':'everthing','number:200})
定义上来讲:
对象是无序的数据集合,是键值对的集合。
细节上来讲:
1.键名是字符串,不是标识符,可以包含任何字符。
2.引号可以省略,省略之后就是表示变量,所以只能是标识符。
3.键名引号省略后的值,本质还是字符串。
2.删除对象的属性
主要用到delete关键字,举例说明
let obj = {"ss":"hello","cc":"hi"}
delete obj.ss //返回true则删除成功
//或者用
delete obj['ss'] //返回true则删除成功
注意点:多次删除不会报错,还是返回true。所以查看某个属性是否属于某个对象用以下方法。
‘ss’ in obj ===false //来判断‘ss’属性是否是obj的属性。
‘ss’ in obj === true && obj.ss === undefined //用来判断存在ss属性但是值为undefined
obj.ss === undefined // 这一句不能用来判断ss是不是obj的属性。
3.查看对象属性
1.查看对象自身所有属性名
eg:
let obj = {"ss":"hello","cc":"hi"}
Object.keys(obj);//会显示所有obj的属性名。
2.查看对象自身所有属性值
Object.values(obj);//会显示所有obj的属性对应的值。
3.查看对象自身所有属性及值
Object.entries(obj);//会显示所有obj的属性和值的键值对
4.查看对象自身属性及共有属性
console.dir(obj)//会显示共有属性和自身的属性
Object.keys(obj._proto_)//或者先打出自有属性,然后用这种方式再打出共有属性。
5.判断属性自有还是共有
obj.hasOwnProperty('ss')//判断属性ss是自有还是共有。
4.修改或者增加对象属性
1.直接赋值,值得一提的是,已有的属性便修改值,没有的属性便新增属性和值。
obj.ss = "你好";
obj['ss'] = "我很好";
obj['s'+'s'] ="都挺好的";//以上三种方式都是修改ss属性的值,每种都可以。
let name = 'ss';
obj[name] = "我们很好";//这种方式也是修改ss属性的值,和obj.ss = "我们很好" 一样。
//name 在这里是变量,值还是'ss'
2.批量赋值
通过assign方法,为每个属性修改属性值,或者增加属性及值
Object.assign(obj, {'ss': 'nihao', 'cc': 'wohenhao'}) ;//已有的属性便修改
Object.assign(obj, {age: 18, gender: 'man'}) ;//没有的属性便新增
5.'name' in obj和obj.hasOwnProperty('name') 的区别
’name‘ in obj; //判断属性'name'是否是obj的属性。
obj.hasOwnProperty('name') ;//判断属性'name'是不是obj的自有属性,
//如果是共有的属性,仍然返回false.