字符串的恒定性:
不可以被修改
字符串:
indexof作用:
str.indexof('字符串')检测 字符串在str中首字符的下标
返回值:
在str中,则返回首字符的下标
不在str中,则返回-1
split语法:
str.split('分隔符') 使用分隔符去切割字符串,得到切割后的数组
返回值:
数组
实际应用场景:
切割网址,得到参数对象
substring语法:
str.substring(起始下标,结束下标)
返回值:
起始 <= 截取范围 < 下标
实际应用场景:
截取部分字符串替换,手机号中间替换成
startswith(检测字符,[检测位置]):
作用:
检测是否以某个字符开头,返回布尔值
endswith(检测字符,[字符串长度]):
作用:
检测是否以某个字符结尾,返回布尔值
includes(搜索的字符,[检测位置]):
作用:
判断一个字符串是否包含在另外一个字符串中,返回布尔值
trim()去除字符串首尾空格:
作用:
只能去除字符串
去所有空格:用正则
test.replace(/\s/g,'')
数组:
reverse语法:
翻转数组(直接改变原数组)
返回值:翻转后的数组
实际场景:
从高到低,从大到小
字符串:
join语法:
arr.join('分隔符') 按照分隔符把数组每一个元素拼接成字符串
返回值:
字符串
实际应用场景:(面试题)
翻转字符串 str.split('').reverse().join('') //首先变成一个数组字符串,进行翻转数组,运用join空字符串(去掉逗号)进行一个字符串的拼接
数组:
sort语法:
arr.sort(function(a,b){
return.b - return.a 从大到小
return.a - return.b 从小到大
})
实际应用场景:
数组排序
flat语法:
arr.flat(深度) 平铺(扁平化)数组
返回值:
直接修改数组本身
实际应用场景:
数组降维(例如把2降维数组变成1维数组)
forEach:循环(数据处理)
语法:
arr.forEach(function(item,index){})
返回值:
没有返回值
实际应用场景:
用于遍历数组元素(和for循环一样)
注意点:(面试题)
1.forEach不能中止循环
2.如何中止forEach(面试题)
try-catch语法可以中止forEach
- try{
- arr.forEach(function(item,index){
- throw数据
- })
- }catch(error){
- error就是throw后面的数据
- }
数组map:
语法:
- arr.map(function(item,index){
- return 新数组元素
- })
返回值:新数组
实际应用场景:
映射数组
数组filter:
返回的是布尔类型true/false 两种值 如果是true那么该将创建一个新的数组中,并将结果存进去,如果是false那么就结束,则不加入新数组中
语法:
- arr.filter(function(item,index){
- return 布尔值
- })
返回值:筛选之后的数组
实际应用场景:筛选功能
数组some:
判断有没有满足条件的元素,如果有就true,就直接结束,没有满足条件的元素,就是false,就继续
语法:
- arr.some(function(item,index){
- return 布尔值
- })
实际应用场景:非空判断
数组every:
判断数组中 是否所有的 元素都满足条件
逻辑与:全真为真,一假则假
return true : 循环继续。 如果全部都return true,最终结果就是true
return false : 循环结束。 最终的结果false
语法:
- arr.every(function(item,index){
- return 布尔值
- })
- 实际应用场景:全选按钮
数组reduce:
语法:
- arr.reduce(function(sum,item,index){
- return
- })
数组累加器方法 对数组每一个元素执行一次回调函数,累加最后一次回调的结果 实际应用场景:数组元素求和、求数组元素最大值