字符串的扩展
1.模板字符串
模板字符串是字符串的一个新特性,以前我们要实现字符串的拼接的时候是这样的:
let name = '小白';
let str = 'my name is ' + name;
而es6的模板字符串出来以后我们可以写成这样:
let name = '小白';
let str = `my name is ${name}`; //这个符号是tab上面,数字1左边的键
那么,这样写有什么好处呢?好处就是当很多个变量拼接在一起的时候,避免出现很多个加号和冒号。
需要注意几个重点:
1.可以定义多个字符串
let todo = `今年星期天,
我要去游泳!`
在这里直接换行即可,但是需要注意的是,所有的空格和缩进都会被保留在输入中。代码换行了,实际展示的时候也会换行。
2.${}中可以放任意的js表达式,
${}可以是运算表达式和对象的属性
let a = 10;
let b = 20;
let obj = {
a = 15;
b = 20;
}
let sum = `结果等于${a+b}`;
let sum = `结果等于${obj.a+obj.b}`;
${}中也可以是函数的调用
function sum(){
let a = 10;
let b = 20;
return a + b;
}
let result = `相加的结果为${sum()}`;
标签模板
let name = 'xiaobao';
tagFn`my name is${name}!`;
function tagFn(arr,v1) {
console.log(arr); //['my name is','!']
console.log(v1); //xiaobao
}
第一个参数arr是除了${}以外的其他字符,按照顺序组成了数组的内容。所以arr的值为[‘my name is’,’!’]。 标签模板是es6的新语法。它常用来过滤用户的非法输入和多语言转换。
repeat函数
repeat函数:就是将目标字符串重复n次,返回一个新的字符串,并且不会对目标字符串造成影响。
let str = '你猜!';
let str1 = str.repeat(3); //你猜!你猜!你猜!
includes函数
includes函数:判断字符串是否含有指定字符串。返回true表示含有,返回false表示未含有;第二个参数选填,表示开始搜索的位置。
let name = '小白';
console.log(name.includes('小')); //true
以前一般类似的查找我们都是使用indexof的方法,若是找的到的话就返回所在的位置,若是找不到话就会返回-1。 其实很多时候我们使用起来并不是很方便,有时候还要多加一层判断才行。但是我们现在有了includes它的返回值更加的直观,况且有的时候我们并不关心字符串出现的位置。
startsWith函数
startsWith函数:判断字符串是否出现在目标字符的开始位置。第二个参数表示开始搜索的位置。不在的话返回false
let name = '小白';
console.log(name.startsWith('小')); //true
endsWith函数
endsWith函数:判断子字符串是否出现在目标字符串的尾部位置,第二个参数是选填,表示针对前n个字符。
let name = '小白';
console.log(name.endsWith('白')); //true
codePointAt函数
let str = '吉';
console.log(str.codePointAt()); //134071
String.fromCodePoint函数
console.log(String.fromCodePoint(137071)); //吉
String.raw函数
String.raw函数:返回字符串最原始的面貌。
//没有处理过的
log(`name\nlichao`);
//name
//lichao
//处理过的
let n = String.raw`name\nlichao`;
log(n); //name\nlichao