JavaScript数据类型
基本类型:number,string,boolean,null,undefined,symbol
引用类型:也称复杂数据类型 Object,function
检测基本数据类型:typeof 变量名
特殊:
typeof null 返回 Object
typeof 函数名 返回function
var a=1
console.log(anull) //返回0
console.log(aNaN) //返回NaN===not a number
console.log(typeof NaN)
数组常用方法
创建数组
var fruits = [‘Apple’, ‘Banana’];
console.log(fruits.length); // 2
-
数组遍历,是for循环的升级版本,返回值:undefined
forEach((item,index,arr)=>{})参数说明:
item:数组当前项的值
index:数组当前项的索引
arr:数组对象本身 -
添加元素到数组的末尾
var newLength = fruits.push(‘Orange’);
// newLength:3; fruits: [“Apple”, “Banana”, “Orange”] -
删除数组末尾的元素
var last = fruits.pop(); // remove Orange (from the end)
// last: “Orange”; fruits: [“Apple”, “Banana”]; -
shift() //首部删除
-
unshift() //首部添加
-
splice() //插入,删除,替换
三个参数
start
启动
指定修改的开始位置(从O计数)。如果超出了数组的长度,则从数组末尾开始添加内容;如果是负值,则表示从数组末位开始的第几位(从-1计数,这意味着-n是倒数第n个元素并且等价于
(指定修改的开始位置(从O计数)。如果超出了数组的长度,则从数组末尾开始添加内容;如果是负值,则表示从数组末位开始的第几位(从-1计数,这意味着-n是倒数第n个元素并且等价于
array.length-n);如果负数的绝对值大于数组的长度,则表示开始位置为第0位。
如果负数的绝对值大于数组的长度,则表示开始位置为第0位.
deleteCount
可选
整数,表示要移除的数组元素的个数。
item1, item2, …可选
要添加进数组的元素,从start位置开始。如果不指定,则splice()将只删除数组元素。
7. indexOf() //检测是否存在某个子字符串,存在返回对应下标,不存在返回-1
8. sort(function(v1,v2) {}) //排序
9. reverse() //反序
字符串反序 回文问题
function isHuiWen(target) {
var tempStr=target.split('').reverse().join('')
return (tempStr===target? true:false)
}
-
join(‘分隔符’)
-
filter((item,index,arr)=>{}) 查找数组中满足条件的所有元素组成的新数组 返回值:返回新数组
/**
- 需求:把数组中带有’疫情‘那些元素搜索出来组成新数组
- 思路:通过要搜索的目标值结合filter来实现
*/
let arr2 = [
{id:1001,title:'没看大V玫琳凯 汲取奋进力量'},
{id:1002,title:'疫后重振 在武汉过完美一天'},
{id:1003,title:'这么长偶尔哦'},
{id:1004,title:'吃辣可参考请问您机器'},
{id:1005,title:'"海外疫情'},
{id:1006,title:'今年是否已走出疫情阴影'},
]
let searchReault=arr2.filter((item, index) => {
return item.title.includes('疫情')
})
- map((item,index,arr)=>{}) //返回新数组
/**- 需求:把数组中title添加li标签返回新数组
- 思路:通过用map遍历arr2数组,再通过模板字符串拼接返回实现
*/
let arr2 = [
{id:1001,title:'没看大V玫琳凯 汲取奋进力量'},
{id:1002,title:'疫后重振 在武汉过完美一天'},
{id:1003,title:'这么长偶尔哦'},
{id:1004,title:'吃辣可参考请问您机器'},
{id:1005,title:'海外疫情'},
{id:1006,title:'今年是否已走出疫情阴影'},
]
let resultLiTag = arr2.map((item,index) => {
return {msg:'ok',title:`<li>${item.title}</li>`}
})
console.log('resultLiTag:',resultLiTag);
- find() // 查找数组中满足条件的第一个元素,没有满足的返回undefined
- some() //遍历数组中,查找至少有一个满足条件的元素,如果有返回true,否则false
- every() //遍历数组中,只有所有元素都满足条件才返回true,否则false
let arr = [
{id:1001,title:'没看大V玫琳凯 汲取奋进力量',checed:true,num:11},
{ id: 1002, title: '疫后重振 在武汉过完美一天' ,checed:true,num:12},
{id:1005,title:'"海外疫情',checed:true,num:20},
{id:1003,title:'这么长偶尔哦',checed:true,num:30},
{id:1004,title:'吃辣可参考请问您机器',checed:true,num:12},
{id:1006,title:'今年是否已走出疫情阴影',checed:true,num:20},
]
//查找全部选中状态才返回true
// let result=arr.every((item,index) => {
// return item.checed
// })
//查找全部购物车商品数量大于5
let result=arr.every((item,index) => {
return item.num>5
})
- reduce((值1,值2,值3,值4)=>{},初始值) 数组归并,即将数组的多个值合并成一个值
回调函数中4个参数说明:
值1:累计器
值2:当前值
值3:当前索引
值4:要遍历的数组
//需求:统计数组中元素出现的次数
//结果:{'Alice':2,'Tiff':1,...}
var names = ['Alice', 'Alice', 'Bob', 'Tiff', 'Bruce', 'Alice', 'Tiff'];
var info=names.reduce((obj,curValue) => {
if (!obj[curValue]) {
obj[curValue]=1
} else {
obj[curValue]++
}
return obj
},{})
- findIndex() //查找数组中满足条件的第一个元素的索引。若没有找到对应元素则返回-1。
let arr = [
{id:1001,title:'没看大V玫琳凯 汲取奋进力量'},
{id:1002,title:'疫后重振 在武汉过完美一天'},
{id:1005,title:'海外疫情'},
]
//查找“疫情”关键字
let result=arr.findIndex((item,index) => {
return item.title.includes('疫情')
})
- includes() //判断是否含有某个数组元素,如果含有返回true,否则返回false
- 字符串转数组:str.split()
数组转字符患:arr.join()