欢迎光临散文网 会员登陆 & 注册

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

2023-07-12 16:04 作者:小四姨呀  | 我要投稿

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)


千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip的评论 (共 条)

分享到微博请遵守国家法律