- 首页 > it技术 > >
ES6新增API(String篇(一))
- 【ES6新增API(String篇(一))】String.raw
String.raw
是一个模板字符串的标签函数(如果你不知道什么是标签函数,点?),它返回模板字符串的原始字符串。比如说\n
不会被当成换行处理,而是被当做两个普通字符\
和n
:
console.log(String.raw`1\n2`);
//1\n2
通常,我们不需要把它当做普通函数来调用,但是如果你一定要把它当做普通函数调用的话,要注意传入参数的格式:
(template: {
raw: readonly string[] | ArrayLike;
}, ...substitutions: any[])=>string
String.raw
的第一个参数必须是一个有raw
属性的对象,该属性值为字符数组或者字符类数组,剩余参数就是插入的值。
console.log(String.raw({ raw: 'abcd' }, 0, 1, 2));
//a0b1c2d
//3 4两个插值超出了模板数组的范围,会被忽略
console.log(String.raw({ raw: ['a', 'b', 'c', 'd'] }, 0, 1, 2, 3, 4));
//a0b1c2d
- String.prototype.repeat
函数类型:
(count?:number)=>string
repeat
函数会根据传入的参数n
,返回一个原字符串重复了n
次的新字符串,参数n
默认为0
。
//传入0或者不传参数时,原字符串重复0次,返回空字符串
console.log('a'.repeat(0));
// ''
console.log('a'.repeat(2));
// 'aa'
- String.prototype.startsWith,String.prototype.endsWith,String.prototype.includes
函数类型:
(queryString?:string,startPosition?:number)=>boolean
startsWith
、endsWidth
和includes
函数都是ES6新增的用于检查字符串的函数,它们接收两个参数,第一个参数queryString
是要在原字符串中查询的字符串,第二个参数startPostion
是开始查询的位置。在includes
和startsWith
中,startPosition
默认值为0
,在endsWith
中,startPostion
默认为原字符串的length
。
console.log('abcde'.includes('a'));
//true
//改变起始位置
console.log('abcde'.includes('a', 1));
//false
console.log('abcde'.startsWith('a'));
//true
//改变起始位置
console.log('abcde'.startsWith('a', 1));
//falseconsole.log('abcde'.endsWith('a'));
//false
//改变起始位置
console.log('abcde'.endsWith('a', 1));
//true
要注意的是,当要检查的字符串,即参数queryString
为空字符串''
时,这三个函数的返回结果始终为true
。
console.log('abcde'.includes(''));
//true
//改变起始位置
console.log('abcde'.includes('', 1));
//true
console.log('abcde'.startsWith(''));
//true
//改变起始位置
console.log('abcde'.startsWith('', 1));
//true
console.log('abcde'.endsWith(''));
//true
//改变起始位置
console.log('abcde'.endsWith('', 1));
//true
推荐阅读