面试知识点总结 - js String

字符串的概念

  1. 由0个或多个Unicode字符组成
  2. 用成对的单引号或者双引号表示
  3. 字符字面量:
    换行(\n)、回车(\r)、tab(\t)、空格(\b)、进纸(\f)、\(\)、’(’)、"(")、16进制(\x)、Unicode字符(\u)
  4. 创建后不能修改,只能先删除,在创建新的
  5. \u{xxxx},4个字节的字符
  6. 字符串遍历器接口:可以使用for…of,可以识别大于0xFFFF的码点

字符串的方法

  1. toString():返回相应值的字符串表现
    Boolean、Number、String、Object都有该方法
    Null、Undefined没有该方法
  2. String()
    Boolean、Number、String、Object与toString()一样,返回相应值的字符串表现
    Null、Undefined分别返回null、undefined
  3. valueOf()、toString()、toLocalString()
    返回对象所表示的基本类型的字符串
  4. length
    返回字符串中包含对少个字符(非ASCII的双字节字符,长度个数也算1)
  5. str[]、charAt()、charCodeAt()、String.fromCharCode()、codePointAt()、String.fromCodePoint():位置->字符,位置->字符编码,字符编码->字符串
  1. str[位置序号]:返回字符串中特定位置的字符,位置序号从0开始
  2. charAt(位置序号):返回字符串中特定位置的字符,位置序号从0开始
  3. charCodeAt(位置序号):返回字符串中特定位置的字符编码,位置序号从0开始
  4. String.fromCharCode(字符串编码1,字符串编码n):String.fromCharCode(),构造函数方法,接收一个或多个字符串编码,然后将他们转换成一个字符串
  5. at(位置序号):同charAt(),区别在于可以识别超过\uFFFF范围的4个字节字符
  6. codePointAt(位置序号):codePointAt(i),i = 0为整个字符的十进制码点,i = 1为4字节中的前两个字节的十进制码点,i = 2为4字节中的后两个字节的十进制码点
  7. String.fromCodePoint(字符串编码1,字符串编码n)
  1. concat(字符串1,字符串2,字符串n)
    将一个或多个字符串拼接起来(+),返回拼接后的新字符串,不改变原字符串
  2. slice()、substring()、sbustr()
    返回截取后的字符串,不改变原字符串;第二个参数不传时截取到结束位置
    slice(start,end-1):负数参数都加字符串的长度
    substring(start,end-1):负数参数都变为0,两个参数大小会调换(小的在前)
    sbustr(start,length):第一个负数加长度,第二个负数变为0
  3. indexOf()、lastIndexOf():字符->位置
    查找指定字符的位置,没找到返回-1;返回查找到的位置,不改变原字符串;字符的位置序号一直都是从前开始排序的
    indexOf(查找的字符,开始查找的位置):从前向后查找
    lastIndexOf(查找的字符,开始查找的位置):从后向前查找
  4. trim()
    返回删除前后所有空格的新字符串,不改变原字符串
  5. 大小写转换
    toUpperCase():
    toLowerCase():
    toLocalUpperCase():
    toLocalLowerCase():
  6. 模式匹配方法:match()、search()、replace()、split()
    match(正则表达式/RegExp对象):同RegExp.exec(str),返回匹配项的数组[与整个模式匹配的字符串,与每个捕获组匹配的字符串]
    search(正则表达式/RegExp对象):返回字符串中第一个匹配项的索引,没有匹配到返回-1
    replace(字符串/正则表达式/RegExp对象,字符串/函数):第一个参数为字符串时替换一个字字符串,为正则时加(/g)替换所有子字符串;第二个参数为函数时有三个参数function(模式的匹配项,模式匹配项在字符串中的位置,原始字符串){};通过这则表达式查找字符串的每一项,然后手动return函数中操作后的字符串
    split(字符串/正则表达式/RegExp对象):参数为分隔符,根据分隔符将字符串分成对个子字符串,并放在一个数组中,字符串转数组
//短横线转为驼峰
let str = 'name-value,key1-nnn22&key2-xxx';
let reg = /-\w{1}/g;
let str1 = str.replace(reg,function(a,b,c){
    console.log(a,b,c);
    return a.slice(1).toUpperCase();
})
console.log(str1)
  1. localCompare():
    比较两个字符串(调用方法的字符串,参数字符串)
    a.localCompare(b):a在字母表中排在b之前,返回负数;之后返回正数,相等返回0
  2. includes()、startsWith()、endsWith()
  1. includes(要查找的字符,开始查找的位置):返回布尔值,是否包含参数字符串
  2. startsWith(要查找的字符,开始查找的位置):返回布尔值,是否以参数字符串开头
  3. endsWith(要查找的字符,开始查找的位置):返回布尔值,是否以参数字符串结尾
  1. repeat(重复次数)
    将原字符串重复n次,返回新的字符串
  2. padStart()、padEnd()
  1. padStart(字符串最小长度,用来补全的字符串):字符串补全长度
  2. 原字符串长度大于指定最小长度,返回原字符串
  3. 用来补全的字符串长度大于最小指定长度,则截取超出位数的补全字符串
  4. 省略第二个参数,则用空格来当补全字符串
  5. 用途:
  1. 数值补全指定位数
    ‘30’.padStart(5,‘0’) // 00030
  1. 提示字符串格式
    ‘08-18’.padStart(‘10’,‘YYYY-MM-DD’) // YYYY-08-18
  1. 模板字符串
  1. `hello ${name},how are you?` 用于字符串拼接
  2. {}中可以为:字符串、变量、表达式、函数调用、对象属性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值