ES5字符串方法
1. String.fromCharCode() 该方法的参数是一系列Unicode码点,返回对应的字符串。
2. charAt() 该方法返回指定位置的字符,参数是从0
开始编号的位置。
var s = new String('abc'); s.charAt(1) // "b" s.charAt(s.length - 1) // "c" // 这个方法完全可以用数组下标替代。 'abc'.charAt(1) // "b" 'abc'[1] // "b"
3. charCodeAt()方法返回给定位置字符的Unicode码点(十进制表示),相当于String.fromCharCode()
的逆操作。
4. concat() 方法用于连接两个字符串,返回一个新字符串,不改变原字符串。
5. slice() 方法用于从原字符串取出子字符串并返回,不改变原字符串。它的第一个参数是子字符串的开始位置,第二个参数是子字符串的结束位置(不含该位置)。
6. substring() 方 法用于从原字符串取出子字符串并返回,不改变原字符串。它与slice
作用相同,但有一些奇怪的规则,因此不建议使用这个方法,优先使用slice
。此
方法的第一个参数表示子字符串的开始位置,第二个位置表示结束位置。
7. substr()方法用于从原字符串取出子字符串并返回,不改变原字符串。此
方法的第一个参数是子字符串的开始位置,第二个参数是子字符串的长度。
8. indexOf(),lastIndexOf()这两个方法用于确定一个字符串在另一个字符串中的位置,都返回一个整数,表示匹配开始的位置。如果返回-1
,就表示不匹配。两者的区别在于,indexOf
从字符串头部开始匹配,lastIndexOf
从尾部开始匹配。
9. trim() 方法用于去除字符串两端的空格,返回一个新字符串,不改变原字符串。
10. toLowerCase(),toUpperCase(),toLowerCase
方法用于将一个字符串全部转为小写,toUpperCase
则是全部转为大写。它们都返回一个新字符串,不改变原字符串。
11. localeCompare()方法用于比较两个字符串。它返回一个整数,如果小于0,表示第一个字符串小于第二个字符串;如果等于0,表示两者相等;如果大于0,表示第一个字符串大于第二个字符串。
12. match()方法用于确定原字符串是否匹配某个子字符串,返回一个数组,成员为匹配的第一个字符串。如果没有找到匹配,则返回null
。
13. search() 方法的用法等同于match
,但是返回值为匹配的第一个位置。如果没有找到匹配,则返回-1
。
14. replace() 方法用于替换匹配的子字符串,一般情况下只替换第一个匹配(除非使用带有g
修饰符的正则表达式)。
15. split() 方法按照给定规则分割字符串,返回一个由分割出来的子字符串组成的数组。
ES6字符串的方法
1. 字符的 Unicode 表示法
2. codePointAt() JavaScript 内部,字符以 UTF-16 的格式储存,每个字符固定为2
个字节。对于那些需要4
个字节储存的字符(Unicode 码点大于0xFFFF
的字符),JavaScript 会认为它们是两个字符。
3. String.fromCodePoint() ES5 提供String.fromCharCode
方法,用于从码点返回对应字符,但是这个方法不能识别 32 位的 UTF-16 字符(Unicode 编号大于0xFFFF
)。
4. 字符串的遍历器接口 ES6 为字符串添加了遍历器接口(Iterator),使得字符串可以被for...of
循环遍历。
5. at() ES5 对字符串对象提供charAt
方法,返回字符串给定位置的字符。该方法不能识别码点大于0xFFFF
的字符。
6. normalize() 许多欧洲语言有语调符号和重音符号。为了表示它们,Unicode 提供了两种方法。一种是直接提供带重音符号的字符,比如Ǒ
(u01D1)。另一种是提供合成符号(combining character),即原字符与重音符号的合成,两个字符合成一个字符,比如O
(u004F)和ˇ
(u030C)合成Ǒ
(u004Fu030C)。
7. includes(), startsWith(), endsWith()
传统上,JavaScript 只有indexOf
方法,可以用来确定一个字符串是否包含在另一个字符串中。ES6 又提供了三种新方法。
a). includes():返回布尔值,表示是否找到了参数字符串。
b). startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
c). endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
8. repeat() 方法返回一个新字符串,表示将原字符串重复n
次。
9. padStart(),padEnd() ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()
用于头部补全,padEnd()
用于尾部补全。
10. 模板字符串
11. 模板编译
12. 标签模板 模板字符串的功能,不仅仅是上面这些。它可以紧跟在一个函数名后面,该函数将被调用来处理这个模板字符串。这被称为“标签模板”功能(tagged template)。
13. String.raw()方法,往往用来充当模板字符串的处理函数,返回一个斜杠都被转义(即斜杠前面再加一个斜杠)的字符串,对应于替换变量后的模板字符串。
14. 模板字符串的限制 前面提到标签模板里面,可以内嵌其他语言。但是,模板字符串默认会将字符串转义,导致无法嵌入其他语言。