arr=[ ]长这样的就叫做数组
obj={ }长这样的就叫对象

下面通过一个表格来详细了解一下数组和对象的一些特性

数组

对象

数组有下标,并且是从零开始

对象没有下标,他只是键值对的集合

数组是根据位置下标来索引

对象是根据关键索引

数组无法使用这种点语法标识内容

对象可以使用对象.关键词

数组的length可以获取长度,也可以设置长度,仅用来统计下标的数量

对象不能通过length方式来获取长度

数组是一种紧密型集合:数组如果删除了其中一个下标,就会造成其他数据的位置变化

对象是一种松散型集合:对象中如果删除了某一个关键字,不会造成其他关键字位置顺序变化

如果数组中添加了属性和方法,在使用for循环时是根据长度来循环的 因此只能循环数组的所有下标元素,而属性和方法将不会循环到,如果使用for in就会循环到所有属性和方法以及所有下标

对象可以通过for in来循环,但是不能用for循环来遍历

1、在js中数组就是基于对象拓展出来的新类型,所以 如果使用typeof判断数组,我们获得的是object,所以判断是否是数组,那么得用Array.isArray(数组名)来判断是不是数组类型的。

2、使用new Array创建数组时,如果参数仅有一个并且这个参数是一个正整数,那么这个参数就是 创建数组的长度(初始长度),并且数组中是没有元素的如果参数仅为一个,并且不是正整数,而是小数或者负数时,就会报错。如果参数仅有一个,不是数值类型,那么他就会作为第一个参数放入下标为零的位置。如果参数有多个,那么参数就不做为数组长度了,而是作为参数放入数组当中。

3、数组删除方式为:

arr.length=arr.length-1;删除数组最尾部的参数
 arr.length=0;表示清空数组所有元素

4、数组是由对象构造而成的,所以数组同样也是引用数据类型的,它也被存储在对中,直接赋值也是赋值引用地址