es6入门第三章字符串的扩展
作者: 阿蒙 时间: 2017-6-27 标签: JavaScript 浏览: 1989 评论: 0
1. Unicode 码点可以加入大括号以争取解读编码字符串。
"\u{41}\u{42}\u{43}" // ABC
2. 提供 codePointAt 代替charAt,charCodeA方法来正确处理四个字节的字符串, 正确返回32位的UTF-16字符的码点
3. 提供String.fromCharCode方法,用于从码点返回对应字符,但是这个方法不能识别32位的UTF-16字符(Unicode编号大于0xFFFF)
4. 可以使用for...of方法遍历字符串。 for...of可以正确识别大于0xFFFF的码点,传统的for循环无法识别这样的码点。
5. includes(),startsWith(),endsWith()
includes():返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在源字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部。
6. repeat() repeat
方法返回一个新字符串,表示将原字符串重复n次。 参数如果是小数,会被取整。如果repeat的参数是负数或者Infinity,会报错。 但是,如果参数是0到-1之间的小数,则等同于0,这是因为会先进行取整运算。0到-1之间的小数,取整以后等于-0,repeat视同为0。参数NaN等同于0。 如果repeat的参数是字符串,则会先转换成数字。
7. padStart(),padEnd() padStart()用于头部补全,padEnd()用于尾部补全。
'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax'
'x'.padEnd(5, 'ab') // 'xabab'
'x'.padEnd(4, 'ab') // 'xaba'
如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。 如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串。 如果省略第二个参数,默认使用空格补全长度。 padStart
的常见用途是为数值补全指定位数。下面代码生成10位的数值字符串。 另一个用途是提示字符串格式。
7. 模板字符串
模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。如果在模板字符串中需要使用反引号,则前面要用反斜杠转义。 如果使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中。 模板字符串中嵌入变量,需要将变量名写在${}
之中。 大括号内部可以放入任意的JavaScript表达式,可以进行运算,以及引用对象属性。 模板字符串之中还能调用函数。如果大括号中的值不是字符串,将按照一般的规则转为字符串。比如,大括号中是一个对象,将默认调用对象的toString
方法。如果模板字符串中的变量没有声明,将报错。由于模板字符串的大括号内部,就是执行JavaScript代码,因此如果大括号内部是一个字符串,将会原样输出。
8. 标签模板 模板字符串可以紧跟在一个函数名后面,该函数将被调用来处理这个模板字符串。这被称为“标签模板”功能(tagged template)。 标签模板其实不是模板,而是函数调用的一种特殊形式。“标签”指的就是函数,紧跟在后面的模板字符串就是它的参数。 但是,如果模板字符里面有变量,就不是简单的调用了,而是会将模板字符串先处理成多个参数,再调用函数。
8. String.raw
方法
- 往往用来充当模板字符串的处理函数,返回一个斜杠都被转义(即斜杠前面再加一个斜杠)的字符串,对应于替换变量后的模板字符串。
- String.raw
方法可以作为处理模板字符串的基本方法,它会将所有变量替换,而且对斜杠进行转义,方便下一步作为字符串来使用。
-String.raw
方法也可以作为正常的函数使用。这时,它的第一个参数,应该是一个具有raw
属性的对象,且raw
属性的值应该是一个数组。
本文相关标签: es6
发表评论: