千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip

indexOf 根据传入的字符串返回第一次出现的下标(找不到返回-1)从前往后
console.log('aaaabbbb'.indexOf('a'))//0
console.log('aaaabbbb'.indexOf('ab'))//3
lastIndexOf 根据传入的字符串返回第一次出现的下标 (找不到返回-1)(从后往前)
console.log('aaaabbbb'.lastIndexOf('a')) //3
console.log('aaaabbbbab'.lastIndexOf('ab')) //8
search 方法类似于indexOf 支持正则表达式
// search 返回对应的下标 找不到返回-1 支持正则表达式
console.log('aaabbb'.search('ab'))//2
console.log('aaabbb'.search('ab',3))//2 search只有一个参数 没有开始位置
底层实现lastIndexOf及indexOf
//简易实现indexOf
var str = 'abcbcaabcd'
function myIndexOf(value,index){
if(value == undefined){
throw new Error('传参个数错误')
}
//如果index没有传入设置默认值
if(index == undefined){
index = 0
}
//遍历查找
//得到对应的长度
//如果当前的开始位置+value的长度大于本身的字符串长度 那么返回-1
if(index+value.length > str.length){
return -1
}else{
//遍历对应的字符串
for(var i=index;i<str.length - value.length;i++){
//根据value长度来拼接
var v = str[i]
for(var j=1;j<value.length;j++){
v+=str[i+j]
}
//根据对应的value来比较
if(value == v){
return i
}
}
}
return -1
}
console.log(myIndexOf('abc',2))
//lastIndexOf的实现
function myLastIndexOf(value,index){
if(value == undefined){
throw new Error('传参个数错误')
}
//如果index没有传入设置默认值
if(index == undefined){
index = str.length
}
//遍历查找
//得到对应的长度
for(var i=index;i>=0;i--){
//字符串拼接
var v = str[i]
for(var j=1;j<value.length;j++){
v+=str[i+j]
}
if(v == value){
return i
}
}
return -1
}
charAt 根据下标返回字符
charCodeAt 根据下标返回字符串的ascii码
console.log('abc'.charCodeAt(0))//97
静态方法 String.fromCharCode
//静态方法
// 将asscii码变成字符串 String
var str = String.fromCharCode(97) //返回一个字符串
console.log(str)
截取相关的方法 (如果只传递一个参数那么默认都是截取到最后)
substring 传入开始下标及结束下标(包含开始的下标不包含结束的)
var str = 'abcdef'.substring(3,5)//de
substr 传入开始下标和个数
var str = 'abcdef'.substr(2,2)//从下标2开始截取俩个 cd
slice 传入开始下标及结束下标 (可以一个参数都不传递默认截取所有)
var str = 'abcdef'.slice(2,4)//cd
连接的方法
concat
var str = 'hello'
//返回一个新的字符串
var concatStr = str.concat('world')
console.log(concatStr) //helloworld
支持正则的四个方法
search
//search 查找(根据传入的字符串返回第一次出现位置的下标)
var str = '1_abcd'
//\w数字字母下划线
var index = str.search(/\w/)
console.log(index)//0
match
//match 匹配 返回一个数组(包含匹配的内容)执行一次
var str = '_abc?789'
var strArr = str.match(/\w/)
console.log(strArr)
replace
//replace 替换 根据对应的匹配内容进行替换 执行一次
var str = 'abcabc'
// var str1 = str.replace('a','f')//传入字符串形式 将a替换为f
var str1 = str.replace(/a/,'f')//传入正则形式 将a替换为f
console.log(str1)
//高阶函数写法的replace 支持传入函数作为参数
//传入一个函数作为参数的形式 里面的参数是匹配的内容 里面的return是替换的内容
var replaceStr = str.replace(/a/,function(value){
console.log(value)//a
return 'f'
})
console.log(replaceStr)
split
//split 分割的 将对应的字符串分割为一个数组返回
//数组的join相反 将数据拼接成一个字符串返回 将字符串拆分为数组
var str = 'a,b,c'
//如果不传参 他就将这个字符串直接填入数组返回
// var arr = str.split(',')
var arr = str.split(/,/)
console.log(arr)