众所周知,JavaScript默认采用
UTF-16
进行编码,允许使用uxxxx
形式表示一个字符,其中xxxx
是字符的Unicode码点。ES6扩展了unicode的表示
1.字符串新增方法
- String.codePointAt(index):正确处理4个字节存储的字符,返回一个字符的码点;
- String.fromCodePoint(code):识别大于
0xFFFF
的码点,正确显示对应码点的字符; - String.at(index):识别大于
0xFFFF
的字符;(需pollyfill) - String.normalize():将字符的不同表示方法统一为同样形式;
- String.startWith(string,index):确定一个字符串,从index位以后,是是否以子字符串string开头;
- String.endWith(string):确定一个字符串,从index位以后,是否以字符串string结束;
- String.includes(string):判断一个字符串里面是否包含了字符串string;
- String.repeat(Num):将一个字符串重复Num次后返回结果字符串;
- String.padStart(Num,string):若一个字符串不够Num长度,采用string在头部补全;
- String.endStart(Num,string):若一个字符串不够Num长度,采用string在尾部补全;
- String.raw(stringArr,args):充当字符串模板的处理函数,返回一个反斜线都被转义的字符串,对应替换变量后的字符串;
2. 模板字符串
- 模板字符串(template string)是增强版的字符串,用反引号(`)标识。可以当做普通字符串使用、也可以用来定义多行字符串、或者自爱字符串中嵌入变量、嵌套字符串模板。
- 标签模板(tagged template):模板字符串紧跟在一个函数名后面,该函数被调用来处理这个模板字符串,其使用场景如下:
- 过滤html字符串,防止用户输入恶意内容
- 多语言转换,实现国际化处理
- 在JavaScript语言中嵌入其他语言;
- 模板字符串的第一个参数(模板字符串数组),生成一个raw属性