振作精神,努力更新!
先定个小目标,每周更新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() |
-
String.fromCodePoint()
Unicode → 相应字符
// 码点不能大于 0xFFF String.fromCharCode() // ES6 改进 String.fromCodePoint() String.fromCodePoint('0x20BB7') // "𠮷" // 多个参数,合并成字符串返回 String.fromCodePoint(0x78, 0x1f680, 0x79) === 'x\uD83D\uDE80y' // true
-
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"
-
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 转换
-
normalize()
等价识别
-
includes()
startsWith()
endsWith()
传第二个参数,除 endsWith 都表示从 n 开始到结束
-
repeat()
返回一个重复 n 次的新字符串
-
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"
-
-
trimStart()
trimEnd()
浏览器别名方法:trimLeft(),trimRight()