我们简单的把所有数据类型分为两个大类 基本数据类型 和 复杂数据类型
基本数据类型: number / string / boolean / undefined / null
复杂数据类型: object / function / array / ...
内置构造函数创建数组
// 创建一个空数组
var arr1 = new Array()
// 创建一个长度为 10 的数组
var arr2 = new Array(10)
// 创建一个有内容的数组
var arr3 = new Array(1, 2, 3)
数组的 length
arr.length
数据类型之间存储的区别(重点)
既然我们区分了基本数据类型和复杂数据类型
那么他们之间就一定会存在一些区别
他们最大的区别就是在存储上的区别
我们的存储空间分成两种 栈 和 堆
栈: 主要存储基本数据类型的内容
堆: 主要存储复杂数据类型的内容
基本数据类型在内存中的存储情况
var num = 100,在内存中的存储情况
直接在 栈空间 内有存储一个数据
复杂数据类型在内存中的存储情况
下面这个 对象 的存储
varobj={
name:'Jack',
age:18,
gender:'男'
}
复杂数据类型的存储
在堆里面开辟一个存储空间
把数据存储到存储空间内
把存储空间的地址赋值给栈里面的变量
这就是数据类型之间存储的区别
数组常用的方法
语法: 数组.pop 以下都相同
1.pop删除数组末尾的一个元素
2.shift删除数组最前面的一个元素
3.unshift在数组的最前面添加一个元素
4.push末尾追加一个元素
5.reverse反转数组 arr.reverse()
6.splice按照数组的索引来截取
splice(参数1,参数2,参数3)
参数1:从索引下标开始
参数2:个数
参数3:在截取后用参数3替代被截取的数
(第三个参数可以不写)
7.slice按照数组的索引来截取
slice(参数1,参数2)参数1索引起始,参数2索引结束但不包括本身
7.sort 数组排序 arr.sort()
8.concat 是把多个数组进行拼接
和之前的方法有一些不一样的地方,就是 concat 不会改变原始数组,而是返回一个新的数组
9. join
join 是把数组里面的每一项内容链接起来,变成一个字符串
可以自己定义每一项之间链接的内容 join(要以什么内容链接)
不会改变原始数组,而是把链接好的字符串返回