ES6 字符串新增方法

本文探讨如何制定每周内容更新策略,分享String对象在编码中的实用方法,如String.fromCodePoint()、String.raw`以及字符编码处理。掌握这些工具,助您更高效地进行字符串操作和Unicode编码转换。
摘要由CSDN通过智能技术生成

振作精神,努力更新!

先定个小目标,每周更新3篇内容!

本周:2022 - 06 - 20 ~ 2022 - 06 - 26 ( 第一篇 )

感觉可能用得上的方法:

方法作用
String.fromCodePoint()识别4字节码点,转为字符串
String.raw``处理含斜杠的字符串,返回转义之后的字符串
codePointAt()识别一个字符是 2 字节还是 4 字节(> 0xFFF)
includes(arg, n)检查是否包含 arg,n 可省,从 n 号位开始查询
startsWith(arg, n) 检查是否以 arg 开头,n 可省,从 n 号位开始查询
endsWith(arg, n)检查是否以 arg 开头,n 可省,查询 n 号位以前的
repeat(n)返回一个重复 n 次的新字符串
padStart(length, string) 

头部 / 尾部补 string,补全的字符串长度为 length,

超长度时 string 会被截取

padEnd(length, string)
trimStart()删除头部 / 尾部空格
trimEnd()
  1. String.fromCodePoint()

    Unicode → 相应字符

    // 码点不能大于 0xFFF
    String.fromCharCode()
    ​
    // ES6 改进
    String.fromCodePoint()
    ​
    String.fromCodePoint('0x20BB7')
    // "𠮷"
    ​
    // 多个参数,合并成字符串返回
    String.fromCodePoint(0x78, 0x1f680, 0x79) === 'x\uD83D\uDE80y'
    // true

  2. String.raw()

    斜杠被转义

    String.raw`Hi\n${2+3}!`
    // 实际返回 "Hi\\n5!",
    // 显示的是转义后的结果 "Hi\n5!"
    ​
    // 原字符已转义会再次转义
    String.raw`Hi\\n`
    // 返回 "Hi\\\\n"
    // `foo${1 + 2}bar`
    // 等同于
    String.raw({ raw: ['foo', 'bar'] }, 1 + 2)
    // "foo3bar"

  3. codePointAt()

    javascript 内,字符以 UTF-16 格式存储,

    每个字符固定为 2 个字节。

    4 字节的字符,js 会认为它是两个字符。

    var s = "𠮷";
    s.length // 2
    s.charAt(0) // ''
    s.charCodeAt(1) // 57271
    ​
    // ES6 升级版
    codePointAt()
    // 问题举例:𠮷a
    // 1. 字符长度为3,按逻辑应为2
    // 2. 第一个字符会返回𠮷 4字节码点
    // 3. 第二个字符返回分开无法使用的码点
    ​
    // for...of 可识别 32位utf-16字符
    // ...运算也可以识别

    codePointAt() 返回 十进制 码点。

    转为 十六进制 须 toString 转换

  4. normalize()

    等价识别

  5. includes()

    startsWith()

    endsWith()

    传第二个参数,除 endsWith 都表示从 n 开始到结束

  6. repeat()

    返回一个重复 n 次的新字符串

  7. padStart()

    padEnd()

    头部补全 / 尾部补全

    'x'.padStart(5, 'ab') // 'ababx'
    'x'.padStart(4, 'ab') // 'abax'
    ​
    'x'.padEnd(5, 'ab') // 'xabab'
    'x'.padEnd(4, 'ab') // 'xaba'
    ​
    'x'.padStart(4) // 少参补空格'   x'

    用途:

    • 补全指定位数

      '1'.padStart(10, '0')
      // "0000000001"
    • 提示字符串格式

      '12'.padStart(10, 'YYYY-MM-DD')
      // "YYYY-MM-12"
  8. trimStart()

    trimEnd()

    浏览器别名方法:trimLeft(),trimRight()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值