Unicode表示法
同一个字符的六种表示方法
'\z'==='z'
'\172'==='z'
'\x7A'==='z'
'\u007A'==='z'
'\u{7A}'==='z'
{} 是es6加入的可以表示utf-16的编码(utf-16的编码需要两个字符表示)
'\u{1f680}'==='\uD83D\uDE80'
字符处理
方法 | 作用 | 意义 | 备注 |
---|---|---|---|
codePointAt() | 正确的识别utf-16(返回结果与charCodeAt相同) | 解决charCodeAt将utf-16识别为两个字符 | 指定的参数在utf-16后会出现空缺位 |
formCodePoint() | 由码返回对应字符 | (formCharCode不能识别大于0xFFFF的码)弥补formCharCode缺陷 | |
for…..of | 遍历字符串 | 识别0xFFFF的码(传统for 循环不能) | |
at() | 返回字符串给定位置的字符 | 弥补charAt的缺陷 | |
normalize() | Unicode正规化 | 带语调的字符两种表示方法不等价 | ‘\u01D1’.normalize()===’\u004F\u030C’.normalize() ( ǒ ) 参数NFC NFD NFKC NFKD |
includes() | 返回布尔值 是否找到参数字符串 | ||
startsWith() | 返回布尔值 是否找到参数字符串在头部 | ||
endsWith() | 返回布尔值 是否找到参数字符串在尾部 | ||
repeat(n) | 返回一个将字符串重复n次的字符串 | 小数下舍 (0~-1)取零;小于-1报错 | |
padStart(n,string) | 头部补全 | 等于或大于指定的最小长度,则返回原字符串 node7.0 没兼容 | |
padEnd(n,string) | 尾部补全 | 等于或大于指定的最小长度,则返回原字符串 |
模板字符串
`My name is ${name}`
${} 中可以直接使用变量 不用使用 + 拼接
${}中如果是对象默认对其使用 toString方法