JS 对象基本用法

声明对象的两种语法

对象 定义:

无序的数据集合

键值对的集合

写法

let obj = {'name':'frank','age':18}

let obj = new Object({'name':'frank'})

console.log({'name':'frank','age':18})

细节

键名是字符串 不是标识符 可以包含任意字符

引号可省略 省略之后就只能写成标识符

就算引号省略了 键名也还是字符串

如何删除对象的属性

delete obj.xxx或delete obj['xxx']

即可删除obj的xxx属性

请区分 属性值为undefined 和 不含属性名

不含属性名

'xxx' in obj && obj.xxx === undefined

注意obj.xxx === undefined

不能断定'xxx'是否为obj的属性

如何查看对象的属性

查看自身所有属性

Object.keys(obj)

查看自身+共有属性

console.dir(obj)

或者自己依次用Object.keys打印出obj.__proto__

判断一个属性是自身的还是共有的

obj.hasOwnProperty('toString')

如何修改或增加对象的属性

直接赋值

let obj = {name:'frank'}

obj.name = 'frank'

obj['name'] = 'frank'

obj['na' + 'me'] = 'frank'

let key = 'name' obj[key] = 'frank'

let key = 'name'

因为 obj.key 等价于 obj['key']

批量赋值

Object.assign(obj,{age:18, gender:'man'})

'name' in obj和obj.hasOwnProperty('name') 的区别

'name' in obj 包括原型中的属性

obj.hasOwnProperty('name') 不包括原型中的属性

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容