JavaScript中的Object(持续更新)

对象的特点

  1. 用键值对来(又称为属性名和属性值)描述一个对象
  2. {key:value,}
  3. key不可以是引用类型,value可以是任何类型
  4. key不能重复
  5. 数组是特殊的对象
  • key是0,1,2…,每一个数字代表当前项的位置,把这种数字属性名称为”索引“
  • 默认有一个length属性储存数组的长度 arr.length/arr[“length”]可以获取数组的长度

对象的增删改查

  1. 对象.属性名 = 属性值
    这样操作key不可以是数字
  2. 对象[属性名] = 属性值
    其他非字符串格式作为key和把它转化为字符格式没啥区别
console.log(obj[1]);
console.log(obj["1"])

字符串格式可不能乱写,因为js会以为是变量

obj.key1 = value;
obj['key2'] = value2
// Error: key is not defined
// obj[key2] = value2
  1. 如果要获取的属性不存在,获取到的属性值是undefined,不会报错
  2. Object.keys(obj) 返回的结果是包含所有属性名的数组
  3. Object.entries(obj)
  4. 删除
//假删除
obj.key = null;
//真删除
delete obj.key;

为什么key不可以是引用类型

  1. 属性名的值
let n = 100;
let obj = {};
//obj.n = 200//=> {n:200} key是“n”
//obj["n"] = 200//=> {n:200} key是“n”
//obj[n] = 200//=> {100:200} key是100(数字格式)

基于 对象[属性名] 的方式操作,需要保证key是一个值(基本类型:字符串/数字/布尔/undefined/null都可),如果不是值而是一个变量。会把变量储存的的值作为key进行操作

  1. 如果变量是引用类型会先转化为字符串(普通对象转化为字符串都是"[object Object]",数组转化为字符串))
let n = {x: 100};
let m = [100,200];
obj[n] = "item1"//=> {"[object Object]":"item1"}
obj[m] = "item2"//=>{"100,200":"item2"}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值