• 字符串方法+ES6中字符串的方法


    目录

    字符串的认识

    1.字符串可以被视为字符数组,因此可以使用数组的方括号运算符,用来返回某个位置的字符(位置编号从0开始)

    2.length属性  返回字符串的长度,该属性也是无法改变的。

    String概述

    字符串方法

    1.charAt()  返回指定位置的字符,参数是从0开始编号的位置。

    2.charCodeAt() 返回指定索引位置字符的 Unicode 值(十进制表示)

    3.concat() 用于连接两个字符串,返回一个新字符串,不改变原字符串

    4.slice()用于从原字符串取出 子字符串并返回,不改变原字符串。它的第一个参数是子字符串的开始位置,第二个参数是子字符串的结束位置(不含该位置)。(第二个参数可省略)

    5.substring() 用于从原字符串取出子字符串并返回,不改变原字符串,跟slice方法很相像。它的第一个参数表示子字符串的开始位置,第二个位置表示结束位置(返回结果不含该位置)。

    6.substr() 用于从原字符串取出子字符串并返回,不改变原字符串,substr方法的第一个参数是子字符串的开始位置(从0开始计算),第二个参数是子字符串的长度

    7.indexOf() 用于确定一个字符串在另一个字符串中 第一次出现 的位置,返回结果是匹配开始的位置。如果返回-1,就表示不匹配。

    8.lastIndexOf() 是从尾部开始遇到的第一次出现的位置,这个位置的返回结果是 从左边开始算起,而不是从右边开始算起。

    9.trim() 用于去除字符串两端的空格,返回一个新字符串,不改变原字符串。该方法去除的不仅是空格,还包括制表符(\t、\v)、换行符(\n)和回车符(\r)

    10.toLowerCase()  用于将一个字符串全部转为小写,返回一个新字符串,不改变原字符串。

    11.toUpperCase()  将一个字符串全部转为大写,返回一个新字符串,不改变原字符串。

    12.match()  用于确定原字符串是否匹配某个子字符串,返回一个数组,成员为匹配的第一个字符串。如果没有找到匹配,则返回null

    13.search() 方法的用法基本等同于match,但是返回值为匹配的第一个位置。如果没有找到匹配,则返回-1。

    14.replace() 用于替换匹配的子字符串,一般情况下只替换第一个匹配(除非使用带有g修饰符的正则表达式)。

    15.split() 按照给定规则分割字符串,返回一个由分割出来的子字符串组成的数组

    ES6新增字符串实例方法

    1.includes() 可以用来确定一个字符串是否包含在另一个字符串中,返回布尔值,表示是否找到了参数字符串

    2.startsWith()  可以用来确定一个字符串是否包含在另一个字符串中 返回布尔值,表示参数字符串是否在原字符串的头部

    3.endsWith() 可以用来确定一个字符串是否包含在另一个字符串中 返回布尔值,表示参数字符串是否在原字符串的尾部

    注意点:这上面3个方法都支持第二个参数,表示开始搜索的位置

    4.repeat() 返回一个新字符串,表示将原字符串重复n次。

    5.padStart() 和 padEnd()   如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。

    6.trimStart()和trimEnd()这两个方法 它们的行为与trim()一致,trimStart()消除字符串头部的空格,trimEnd()消除尾部的空格。它们返回的都是新字符串,不会修改原始字符串。


    字符串的认识

    1.字符串可以被视为字符数组,因此可以使用数组的方括号运算符,用来返回某个位置的字符(位置编号从0开始)

    注意点:如果方括号中的数字超过字符串的长度,或者方括号中根本不是数字,则返回undefined

    注意点:字符串与数组的相似性仅此而已。实际上,无法改变字符串之中的单个字符。

    分析:字符串内部的单个字符无法改变和增删,这些操作会失败。

    2.length属性  返回字符串的长度,该属性也是无法改变的。

    String概述

    String是官方内置的函数,用来生成字符串对象

    分析:上面代码中,变量s1是字符串s2是对象。由于s2是字符串对象s2.valueOf方法返回的就是它所对应的原始字符串

    注意点:字符串对象是一个类似数组的对象(很像数组,但不是数组)。

    分析:上面代码中,字符串abc对应的字符串对象,有数值键(012)和length属性,所以可以像数组那样取值

    注意点:除了用作构造函数,String对象还可以当作工具方法使用,将任意类型的值转为字符串。

    字符串方法

    1.charAt()  返回指定位置的字符,参数是从0开始编号的位置。

    这个方法完全可以用数组下标替代:

    注意点:如果参数为负数,或大于等于字符串的长度,charAt返回空字符串。

    2.charCodeAt() 返回指定索引位置字符的 Unicode 值(十进制表示)

    分析:上面代码中,abc1号位置的字符是b,它的 Unicode 码点是98

    注意点:如果没有任何参数,charCodeAt返回首字符的 Unicode 码点

    注意点:如果参数为负数或大于等于字符串的长度,charCodeAt返回NaN。(charAt是返回空字符串)

    3.concat() 用于连接两个字符串,返回一个新字符串,不改变原字符串

    注意点:该方法可以接受多个参数

    注意点:如果参数不是字符串,concat方法会将其先转为字符串,然后再连接

    分析:上面代码中,concat方法将参数先转成字符串再连接,所以返回的是一个三个字符的字符串作为对比加号运算符在两个运算数都是数值时,不会转换类型,所以返回的是一个两个字符的字符串。(1+true=>1+1=2    2+'3'=>'2'+'3' ='23' 并不是一来就看到'3'就把所有的转成字符串)

    4.slice()用于从原字符串取出 子字符串并返回,不改变原字符串。它的第一个参数是子字符串的开始位置,第二个参数是子字符串的结束位置(不含该位置)。(第二个参数可省略)

    注意点:如果参数是负值表示从结尾开始倒数计算的位置,即该负值加上字符串长度。意思是参数是负数时,从结尾开始倒数,(从1开始计算,不是从0开始计算)

    注意点:如果第一个参数大于第二个参数,slice方法返回一个空字符串

    特殊情况:

    1. //一个参数是子字符串的开始位置,第二个参数是子字符串的结束位置(不含该位置)。
    2. console.log('JavaScript'.slice(0, -6)); // "Java"

    5.substring() 用于从原字符串取出子字符串并返回不改变原字符串,跟slice方法很相像。它的第一个参数表示子字符串的开始位置第二个位置表示结束位置(返回结果不含该位置)

    注意点:如果省略第二个参数,则表示子字符串一直到原字符串的结束。

    注意点:如果第一个参数大于第二个参数,substring方法会自动更换两个参数的位置

    分析:上面代码中,调换substring方法的两个参数,都得到同样的结果

    注意点:如果参数是负数,substring方法会自动将负数转为0

    分析:上面代码中,第二个例子的参数-3会自动变成0,等同于'JavaScript'.substring(4, 0)。由于第二个参数小于第一个参数,会自动互换位置,所以返回Java

    总结:由于这些规则违反直觉,因此不建议使用substring方法,应该优先使用slice

    6.substr() 用于从原字符串取出子字符串并返回,不改变原字符串,substr方法的第一个参数是子字符串的开始位置(从0开始计算),第二个参数是子字符串的长度

    注意点:如果省略第二个参数,则表示子字符串一直到原字符串的结束

    注意点:如果第一个参数是负数表示倒数计算的字符位置。意思是参数是负数时,从结尾开始倒数,(从1开始计算,不是从0开始计算)。如果第二个参数是负数,将被自动转为0,因此会返回空字符串。

    分析:上面代码中,第二个例子的参数-1自动转为0,表示子字符串长度为0,所以返回空字符串。

    7.indexOf() 用于确定一个字符串在另一个字符串中 第一次出现 的位置,返回结果是匹配开始的位置。如果返回-1,就表示不匹配。

    注意点:indexOf方法还可以接受第二个参数,表示从该位置开始向后匹配。

    8.lastIndexOf() 是从尾部开始遇到的第一次出现的位置,这个位置的返回结果是 从左边开始算起,而不是从右边开始算起。

    注意:lastIndexOf的第二个参数表示从该位置起向前匹配。

    分析:匹配的时候,从该位置起向前匹配,返回值是从左到右算。

    9.trim() 用于去除字符串两端的空格,返回一个新字符串,不改变原字符串。该方法去除的不仅是空格,还包括制表符(\t\v)、换行符(\n)和回车符(\r

    10.toLowerCase()  用于将一个字符串全部转为小写,返回一个新字符串,不改变原字符串。

    11.toUpperCase()  将一个字符串全部转为大写,返回一个新字符串,不改变原字符串。

    12.match()  用于确定原字符串是否匹配某个子字符串,返回一个数组,成员为匹配的第一个字符串。如果没有找到匹配,则返回null

     分析:返回的数组还有index属性input属性分别表示匹配字符串开始的位置原始字符串

    注意点:match方法还可以使用正则表达式作为参数

    13.search() 方法的用法基本等同于match,但是返回值为匹配的第一个位置。如果没有找到匹配,则返回-1

    注意: search方法还可以使用正则表达式作为参数。

    14.replace() 用于替换匹配的子字符串,一般情况下只替换第一个匹配(除非使用带有g修饰符的正则表达式)。

    注意:replace方法还可以使用正则表达式作为参数

    15.split() 按照给定规则分割字符串,返回一个由分割出来的子字符串组成的数组

    注意点:如果分割规则为空字符串,则返回数组的成员是原字符串的每一个字符。

    注意点:如果省略参数,则返回数组的唯一成员就是原字符串

    注意点:如果满足分割规则的两个部分紧邻着(即两个分割符中间没有其他字符),则返回数组之中会有一个空字符串。

    注意点:如果满足分割规则的部分处于字符串的开头或结尾(即它的前面或后面没有其他字符),则返回数组的第一个或最后一个成员是一个空字符串。

    注意点:split方法还可以接受第二个参数,限定返回数组的最大成员数。

    分析:split方法的第二个参数,决定了返回数组的成员数

    注意:split方法还可以使用正则表达式作为参数

    ES6新增字符串实例方法

    1.includes() 可以用来确定一个字符串是否包含在另一个字符串中,返回布尔值,表示是否找到了参数字符串

    2.startsWith()  可以用来确定一个字符串是否包含在另一个字符串中 返回布尔值,表示参数字符串是否在原字符串的头部

    3.endsWith() 可以用来确定一个字符串是否包含在另一个字符串中 返回布尔值,表示参数字符串是否在原字符串的尾部

    注意点:这上面3个方法都支持第二个参数,表示开始搜索的位置

    分析:上面代码表示,使用第二个参数nendsWith的行为与其他两个方法有所不同它针对前n个字符(从n之后算),而其他两个方法针对从第n个位置(从n开始算)直到字符串结束

    4.repeat() 返回一个新字符串,表示将原字符串重复n次。

    注意:参数如果是小数,会被取整。

    分析:向下取整。Math.floor()

    注意:如果repeat的参数是负数或者Infinity,会报错。

    注意:如果参数是 0 到-1 之间的小数,则等同于 0,这是因为会先进行取整运算。0 到-1 之间的小数,取整以后等于-0repeat视同为 0。

    注意:参数NaN等同于 0。

    注意:如果repeat的参数是字符串,则会先转换成数字

    分析:字符串‘na’转为数字 是 NaN,前面已知,repeat方法会把参数NaN当作0. 字符串'3'转为数字3

    5.padStart() 和 padEnd()   如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。

    padStart()padEnd()一共接受两个参数,第一个参数是字符串补全生效的最大长度,第二个参数是用来补全的字符串。

    注意点:如果原字符串的长度,等于或大于最大长度,则字符串补全不生效,返回原字符串。

    注意点:如果用来补全的字符串与原字符串,两者的长度之和超过了最大长度,则会截去超出位数的补全字符串。

    注意点:如果省略第二个参数,默认使用空格补全长度。

    注意点:padStart()的常见用途是为数值补全指定位数。下面代码生成 10 位的数值字符串

    1. '1'.padStart(10, '0') // "0000000001"
    2. '12'.padStart(10, '0') // "0000000012"
    3. '123456'.padStart(10, '0') // "0000123456"

    注意点:另一个用途是提示字符串格式

    1. '12'.padStart(10, 'YYYY-MM-DD') // "YYYY-MM-12"
    2. '09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12"

    6.trimStart()trimEnd()这两个方法 它们的行为与trim()一致,trimStart()消除字符串头部的空格,trimEnd()消除尾部的空格。它们返回的都是新字符串,不会修改原始字符串。

    分析:上面代码中,trimStart()只消除头部的空格,保留尾部的空格trimEnd()也是类似行为。除了空格键,这两个方法对字符串头部(或尾部)的 tab 键、换行符等不可见的空白符号也有效。浏览器还部署了额外的两个方法,trimLeft()trimStart()的别名,trimRight()trimEnd()的别名。

  • 相关阅读:
    面试官:Java池化技术你了解多少?
    ruoyi-vue插件集成websocket
    input空格回车输入标签
    Oracle数据库:序列sequence的创建,查询,修改,删除,increment by,start with等关键字
    DSP介绍及CCS
    两数相加——力扣
    我要写整个中文互联网界最牛逼的JVM系列教程 | 「JVM与Java体系架构」章节:跨平台的语言Java和跨语言的平台JVM
    数据库开发-Mysql03
    C/C++大写字母的判断 2021年6月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
    MBTI答题应用小程序
  • 原文地址:https://blog.csdn.net/weixin_47075145/article/details/126437828