新加了 includes() startsWith() endsWith()三种查找字符串的方法
{
//三种方法都返回一个boolean值
const s='hello world';
console.log(s.includes('o'));//true
console.log(s.startsWith('hello'));//true
console.log(s.endsWith('world'));//true
console.log(s.endsWith('h'));//false
}
//方法中还可以传第二个参数,第二个参数代表着从第几个下标开始查找
{
const s='hello world';
console.log(s.includes('e',6));//false
console.log(s.startsWith('hello',0));//true
console.log(s.endsWith('world',6));//true
}
这三种方法相比较indexOf来说,更加灵活,也方便很多,缺点就是include没有返回下标,有人就说了,你这不是废话嘛,返回下标不就是indexOf了,额,,,,,还真是那么回事。。。。。。。
repeat 重复复制方法
{
const s='abc';
console.log(s.repeat(3));//abcabcabc
console.log(s.repeat(3.8));//abcabcabc
console.log(s.repeat(0));//''
console.log(s.repeat(-0.8));//''
console.log(s.repeat(-1));//报错
}
上面的例子可以看出,正整数按照传的参数重复n出来 小数取小数点前的数重复n次出来 负数报错
padStart padEnd方法
{
const s='string';
console.log(s.padStart(8,'abcd'));//abstring
console.log(s.padStart(4,'abcd'));//string
console.log(s.padEnd(8,'abcd'));//stringab
console.log(s.padStart(8));// string
console.log('9'.padStart(2,'0'));//09 时间补零
}
这两个方法的第一个参数,就是要控制字符串的length,第二个参数就是要在原有的字符串上加的字符串,padStart就是在原有字符串前面加字符串,padEnd就是在原有字符串后面加字符串,当加的字符串加上原有字符串的length大于第一个参数时,就会自动把多余的截取掉,如果小于原有字符串的length就会返回原有的字符串
模板字符串
{
let {a,b,c,d}={a:'张三',b:15,c:'IT',d:function (){return 'show'}}
let [x,y]=[10,3];
const s=`
<ul>
<li class="show">${a}</li>
<li data-index="1">${b}</li>
<li class="none">${c}</li>
<li class="none">${d()}</li>
<li class="none">${x+y}</li>
</ul>
`;
document.querySelector('body').innerHTML=s;
}
字符串模板真心犀利啊,以前弄个复杂点的字符串拼接,那叫一个费劲啊,现在有了字符串模板,真是我大前端的福音啊,两个``就搞定了,里面大括号内部可以放入任意的JavaScript表达式,可以进行运算,以及引用对象属性。
replaceAll 替换字符串中全部相同的字符串
const str=" hello world ";
console.log(str.replaceAll("l",""));// heo word
替换字符串中全部相同的字符串 不会改变原来的字符串,返回替换后的字符串
trimStart trimEnd 去除字符串的首尾空白字符
const str=" hello world ";
console.log(str.trimStart());//hello world
console.log(str.trimEnd());// hello world
不会改变原来的字符串,返回替换后的字符串
matchAll 为所有匹配的匹配对象返回一个迭代器
const str=" hello world ";
let arr=[...str.matchAll(/l/g)];
arr.forEach(item=>{
console.log(item.index);//3 4 10
})
打印结果,如图所示
字符串新加的这几个方法个人感觉padStart()和字符串模板是真心大大的有用的,例如时间倒计时,你还得对小时和分秒补零,有了这个方法就是小菜一碟了,字符串模板就不用说了,ajax交互局部渲染的时候,用到那是肯定的
OK,字符串几个拓展就简单的介绍这几个,咱们万年不变的惯例,如果想学习更详细的资料请狠狠的点击这里!