问题:
- 普通对象有哪些操作?
- 什么是数组对象?
![1322ccc0d49c39c6012b9572c21411ee.png](https://i-blog.csdnimg.cn/blog_migrate/36113019967e718716a20cee27eea03f.jpeg)
回答:
1——解答:普通对象是用{}包裹起来的,由零到多组属性值和属性名组成的一种数据类型。属性是描述当前对象特征的,属性名是当前具备特征的名称,属性值是对这个特征的描述,一组属性名和属性值称为一组键值对。
对象的操作就是对键值对的增删改查。对象的查,也就是获得方式有两种,语法为:对象.属性/对象[属性]。JS中对象的属性名是不可以重复的。
![e03f2d9418086a1781c005a6854453dc.png](https://i-blog.csdnimg.cn/blog_migrate/f6c1546e977fc53dcf307386a74471e9.jpeg)
图中delete删除是彻底删除此属性了,而赋值为null是“假删除”,相当于将属性值改成空了,正常获取时,如果delete删除的属性是获取不到的,返回undefined,而‘假删除’可以获取到,值为null。
说明两种获取值的区别:obj[name]和obj['name'],前者的name是一个变量,代表的是它存储的那个值,而后面的字符串name代表的就是它本身。
一个对象的属性名不仅仅是字符串格式的,还有可能是数字格式的,如果我们存储的值不是数字格式也不是字符串格式的,浏览器会把这个值转换成字符串格式的,然后在进行存储,如obj[{}] = 8;先把{}转换成字符串'[object object]',然后进行存储obj['[object object]'] = 8;获取的时候也是先把对象转换成字符串,然后再获取里面存储的值8.
2——解答:数组对象的属性名是数字,也称为当前对象的索引。其操作和普通对象一样,如下图所示。
![b1ea19c87a0c50729e1048562b1d8a29.png](https://i-blog.csdnimg.cn/blog_migrate/baf12a99654ce924d986743a838beb38.jpeg)