数据类型的区别,数组方法
数据类型的区别
存储的区别
-
基本数据类型存储在栈内村中, 比如:string;number;undefined;null;boolean;
-
复杂数据类型:将数据本体存放在堆内存中,比如对象或者数组,然后将指向该堆内存的地址,存放在数组名挥着对象名中,数组名或者对象名存放在栈内存中。
赋值的区别
-
基本数据类型:赋值以后,两个变量没有关系了,相当于将我自己的某一个东西,复制一份给到了你,然后你的是你的,我的是我的
-
复杂数据类型 : 赋值以后,两个变量操作一个存储空间,相当于我将我房间的钥匙复制给你一份,你可以自由进出该房间对这个房间的布局做一些调整, 我也可以自由进出该房间并且也可以对这个房间的布局做调整
比较的区别
-
基本数据类型是值的比较
-
复杂数据类型是存储地址的比较
传参的区别
-
基本数据类型:将值拷贝一份传递给形参,在函数内修改不会影响外界
-
复杂数据类型:将存储地址赋值给形参,在函数内修改会影响外界
数组的方法
1. push
-
语法:数组.push(参数)
-
作用:向数组的末尾新增一条数据
-
返回值:新增数据后,数组的最新长度
2.pop
-
语法:数组.pop( )
-
作用:删除数组末尾最后一个元素
-
返回值:被删除的数据
3.unshift
-
语法:数组.unshift(参数)
-
作用:像数组的开头新增一条数据
-
返回值:新增数据后,数组的最新长度
4.shift
-
语法:数组.shift()
-
作用:删除数组开头第一个元素
-
返回值:被删除的数据
5.reverse
-
语法:数组.reverse()
-
作用:反转数据
-
返回值:反转后的数组
6.sort
-
语法1:数组.sort()
-
作用:将数组中所有的元素成员,转换为字符串,然后一位一位的对比
-
语法2:数组.sort(function (a, b){ return a - b})
-
作用:将我们数组内的数据按照数字的从小到大排列
-
语法3:数组.sort(function(a, b) { return b - a})
-
返回值:排序后的数组
7.splice
-
语法1:数组.splice(开始下标, 多少个)
-
作用:类似于剪切的功能
-
语法2:数组.splice(开始位置的下标,多少个, 新增的数据1,新增的数据2.....
-
作用:首先会按照前两个参数指明的位置去剪切出来一部分数据, 然后将第二个参数以后的(从第三个开始)所有数据,放在刚才剪切的位置
-
返回值:剪切到的数据
8.slice
-
语法:数组.slice(开始下标, 结束下标)
-
参数的特点
-
1.包前不包后
-
2.两个参数都可以成略不写
-
3.参数可以支持 负数,相当于 数组.length + 负数
-
-
作用:复制出指定范围的内容
-
返回值:复制到的内容
9.concat
-
语法:数组.concat(数据1, 数据2, 数据3......)
-
作用:将传入的数据,合并到指定的数组中,然后返回出来,注意:不会改变原数组!!!
-
返回值:合并后的数组
10.join
-
语法:数组.join(“连接符”) 连接符如果不传递默认按照,连接
-
作用:根据传入的连接符 将数组内的所有元素,拼接成一个完整的字符串
-
返回值:拼接好的字符串
11.indexOf
-
语法:数组.indexOf(要查询的数据,从哪里开始查询(下标)) 第二个参数不写默认为0
-
作用:按照从左到右(按照从小到大)的顺序检查数组中是否包含指定数据
-
返回值:查询到:返回从左到右数据第一次出现的下标,没有查询到:返回 -1
12.lastIndexOf
-
语法:数组.lastIndexOf(要查询的数据,从哪里凯斯查询 (下标) ) 第二个参数不写默认为数组最后一个下标
-
作用:按照从右到左(按照下标的从小到大)的顺序检查数组中是否包含指定数据
-
返回值:查询到:返回从右到左数据第一次出现的下标 没有查询到:返回 -1
13.forEach
-
语法:数组.forEach(function (item, index, origin){遍历数组后你想做的事情})
-
参数:item : 数组中每一个元素
-
index:每一个元素对应的下标
-
origin:原数组
-
-
作用:根据数组的元素内容,循环遍历数组,拿到数组的每一项
-
返回值:没有返回值
-
语义:遍历数组
14.map
-
语法:数组.map(function(item, index, origin) {遍历数组后想要做的事})
-
作用:根据原数组映射出来一个新数组
-
返回值:是一个映射出来的新数组(需要在函数内部书写returen)
-
语义:映射数组
15.filter
-
语法:数组.filter(function (item, index, origin){})
-
作用:过滤数组
-
返回值:过滤出来的内容组成一个新数组
16.find
-
语法:数组.filter(function(item, index, origin){} )
-
作用:去数组中要查找内容
-
返回值:查找到的数据,如果找不到那么返回值 undefined
17.findIndex
-
语法:数组.findIndex(function (item, index, origin) {})
-
作用:去数组中查找内容
-
返回值:查找到的数据对应的下标, 如果找不到那么返回-1
18.every
-
语法:数组.every (function (item, index, origin) {})
-
作用:判断数组中是否有符合条件的元素(有一个符合条件的就行)
-
返回值:符合条件_true ; 否则为false
19.reduce
-
语法:数组.reduce(function (prev, item, index, origin) {}, init)
-
参数1: function(prev, item, index, origin){}
-
1.item, index, origin 和之前的含义一样
-
2.prev : 如果是第一次执行那么可能是数组[0] 的值,也有可能是init 的值
-
如果是第一次后续的执行,那么他的值就是上一次遍历返回的结果
-
-
参数2.:init
- 随意传递一个值即可,只要符合需求
-
作用:累加器
-
返回值:累加后的结果