JS--JS对象的基本用法

142 阅读2分钟
  • JS的七种数据类型
  • JS对象是什么?
  • 声明对象的两种语法
  • 如何将变量作为属性名
  • 如何删除对象的属性
  • 如何查看对象的属性
  • 如何修改或增加对象的属性
  • 'name' in obj和obj.hasOwnProperty('name') 的区别

一、JS的七种数据类型

  • number--数字
  • string--字符串
  • boolean--布尔
  • synbol--符号
  • null--空
  • undefined--空
  • object--对象 总结:四基两空一对象

二、JS对象是什么?

在 JavaScript 中,对象是拥有属性和方法的数据,是无序的数据集合,是键值对的集合。

三、声明对象的两种语法

  • let obj = {'name': 'yuezhuo', 'age':24}
  • let obj = new Object({'name': 'yuezhuo', 'age': 24})[最正确的写法] *'name'是属性名(键名);'yuezhuo'是属性值(键值);

细节

  • 键名是字符串,不是标识符,可以包含任意字符;
  • 引号可以省略,但最好不要省略以防出错;
  • 就算是引号省略了,键名也还是字符串;
  • object.keys(obj)可以的得到obj的所有Key;

四、如何将变量作为属性名

方法:给属性名加个[]

let p1='name' 
let obj1={p1:'yuezhuo'} //属性名为p1

加[]后

let p1='name' 
let obj1={[p1]:'yuezhuo'} //属性名为name

细节

  • 不加[]的属性名会自动变成字符串;
  • 加了[]的属性名会当作变量求值;
  • 值如果不是字符串,则会自动变成字符串;

五、如何删除对象的属性

  • delete obj.xxx
  • delete obj['xxx']

六、如何查看对象的属性

  • 查看自身所有属性:Object.keys(obj)

  • 查看自身+共有属性:console.dir(obj)**[推荐]**或者用Object.keys打印出obj.__ proto__

  • 如何判断一个属性是自身的还是共有的:obj.hasOwnProperty('XXX')

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

修改属性

  • 直接赋值: obj['name']='卓越'

  • 批量赋值: Object.assign(obj,{'age':24,...})

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

'name' in obj查看属性name是否在obj里。

obj.hasOwnProperty('name')用来检测obj是否含有特定的自身属性name。 这个方法会查找一个对象是否有某个属性,但是不会去查找它的原型链