JS 对象基本用法

306 阅读1分钟

声明对象的语法

  • var a=1; 过时版本,尽量不用

  • let a=1; 块作用域,必须先声明再使用,可以不赋值(为undefined),全局声明的let变量不会成为window属性,配合for循环非常有用。

  • const a=1; 声明常量,声明时必须赋值,赋值后不可更改

如何删除对象的属性

  • 删除对象obj的xxx属性:delete.obj.xxxdelete.obj['xxx']

  • 重复删除不会报错,用'xxx' in obj ===false判断是否delete成功

如何查看对象的属性

  • Object.keys(obj)访问obj的所有属性名

  • Object.value(obj)访问obj的所有属性值

  • Object.entires(obj)返回两个数组,分别存着obj的所有属性名和属性值

  • cosole.dir(obj)可以查看obj的所有属性,包括原型所拥有的属性

  • 直接调用obj即可查看所有的键值对

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

  • 通过为对象的属性名赋值即可修改或增加对象的属性,对象名存在时修改属性值,对象名不存在时添加属性,语句为let obj ={name:'frank'}; , obj.name='frank'; , obj['name']='frank';

  • 为对象批量赋值多个属性名及对应的属性值:Object.assign(obj,{age:18,gender:'male'})

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

  • 'name' in obj 不能判断出'name'为obj的自身属性还是obj的原型所有.obj自身或者原型中有'name'就会返回true

  • obj.hasOwnProperty('name')只判断obj自身是否拥有'name'属性,不会判断obj的原型

通过原型创建对象

通过原型common创建对象obj:

 var obj=Object.create(common,{
                               name:{value:'frank'},
                               age:{value:18},
                               gender:{value:'man'}
                               }
                       );