JS对象基础用法

104 阅读2分钟

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.