一、js数据类型
js分为两种数据类型
1.基本数据类型:string number boolean null undefined symbol
2.引用数据类型:object array function
检测数据类型的方法
- typeof 可以判断数据类型 但是无法区分 array object null等数据类型 因为 返回值都是object
- instanceof 不考虑 null 和 undefined(这两个比较特殊)以对象字面量创建的基本数据类型
- constructor 可以区分区基本数据类型和引用数据类型,但是如果构造函数内部原型的指向发生变化 就无法区分数据类型
- Object.prototype.toString.call() 完美的解决方案
二、数组的常用方法
1. push() //末尾添加
2. shift() //首部删除
3. unshift() //首部添加
4. pop() //末尾删除
5. splice() //插入,删除,替换
6. indexOf() //检测是否存在某个子字符串,存在返回对应下标,不存在返回-1
7. sort(function(v1,v2) {}) //排序
8. reverse() //反转
9. join('分隔符')
10. forEach //数组遍历,是for循环的升级版本,返回值:undefined
例: forEach((item,index,arr)=>{})
参数说明:
item:当前元素的值
index:当前元素的索引值
arr:当前元素属于的数组
11. filter查找数组中满足条件的所有元素组成的新数组 返回值:返回新数组
例: filter((item,index,arr)=>{})
参数说明:
item:当前元素的值
index:当前元素的索引值
arr:当前元素属于的数组
12. map//返回新数组
例:map((item,index,arr)=>{})
参数说明:
item:当前元素的值
index:当前元素的索引值
arr:当前元素属于的数组
13 find() // 查找数组中满足条件的第一个元素,没有满足的返回undefined
例:myArr.find(value=>value>5)
14. some() //遍历数组中,查找至少有一个满足条件的元素,如果有返回true,否则false
例:arr.some(function(value,index,array){return 条件})
15. every() //遍历数组中,只有所有元素都满足条件才返回true,否则false
例:arr.every(function(value,index,array){return 条件})
16. reduce((值1,值2,值3,值4)=>{},初始值) 数组归并,即将数组的多个值合并成一个值
语法:arr.reduce(callback,[initialValue])
callback (执行数组中每个值的函数,包含四个参数)
1、previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))
2、currentValue (数组中当前被处理的元素)
3、index (当前元素在数组中的索引)
4、array (调用 reduce 的数组)
initialValue (作为第一次调用 callback 的第一个参数。)
17. findIndex() //查找数组中满足条件的第一个元素的索引。若没有找到对应元素则返回-1。
例:myArr.findIndex((value)=>value.id==1);
18. includes() //判断是否含有某个数组元素,如果含有返回true,否则返回false
例:var fruits = ['Banana', 'Mango', 'Apple', 'Orange'];
fruits.includes('Banana');