ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现
1、String.fromCodePoint()
返回字符串unicode码,由于es5的string.fromCharCode()不能识别码点大于0xFFFF的情况,es6新提供了String.fromCodePoint(),用以弥补 es5的不足,也可以识别码点小于0xFFFF的情况并予以返回。
2、String.raw()
该方法返回一个斜杠都被转义的字符串(就是斜杠的前面再加一个斜杠),一般用来处理模板字符串。他的本质上是一个正常的函数,只是专用于模板字符串的标签函数,若写成正常的形式,他的第一个参数是一个具有raw属性的对象,并且raw属性的值key应该是一个数组,对应模板字符串后的值。。。(我也没用过这个方法)
作为函数的string.raw()的实现代码为:
String.raw = function (strings, ...values) {
let output = '';
let index;
for (index = 0; index < values.length; index++) {
output += strings.raw[index] + values[index];
}
output += strings.raw[index]
return output;
}
3、实例方法:codePointAt()
js内部是用的utf-16的格式除服每隔字符固定为2个字节,对于那些需要4个字节储存的字符(即Unicode码大于0xFFFF的字符)js认为他们是两个字符。
es6提供了codePointAt()方法,用以返回Unicode码点大于0xFFFF字符的码点(小于的也可以返回),返回的为一个十进制的数,如果需要返回的是16进制,可以使用toString()方法转换。 这个方法是用来测试一个字符是两个字节还是四个字节最简单的方法。
4、实例方法:include()、startwith()、endwith()
传统上,JavaScript 只有indexof()方法,可以用来确定一个字符串是否包含在另一个字符串中。ES6 又提供了三种新方法:
includes():返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
这三个方法都支持第二个参数,表示搜索开始的位置。
5、实例方法:repeat()
repeat(n)方法用来将一个字符串重复n次,并返回一个新的字符串,若n是小数则会向下取值,若参数为负数或Infinity会报错,若参数为NAN等同于0;若参数为字符串则会先转为数字。
6、实例方法:padStart()、padEnd()
es6中新增了字符串长度补全的功能,padstart用于头部补全,padend用于尾部补全。
'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax'
上面的代码中两个方法都接受了两个参数,第一个参数为补全后的长度,第二个参数为用来补全的字符串
如果原字符串的长度,等于或大于最大长度,则字符串补全不生效,返回原字符串。
如果用来补全的字符串与原字符串,两者的长度之和超过了最大长度,则会截去超出位数的补全字符串。
如果省略第二个参数,默认使用空格补全长度。
padstart的常见用途是为数值补全指定位数。下面代码生成 10 位的数值字符串。
'1'.padStart(10, '0') // "0000000001"
'12'.padStart(10, '0') // "0000000012"
另一个用途是提示字符串格式。
'12'.padStart(10, 'YYYY-MM-DD') // "YYYY-MM-12"
'09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12"
7、实例方法:trimStart()、 trimEnd()
一个删除头部的空格,一个删除尾部的空格 都是返回的新的字符串,不会改变原来的字符串