字符串扩展方法
程序员文章站
2022-03-08 23:28:16
...
新增特性
Unicode表示法,遍历接口,模板字符串,新增方法(10种)
Unicode表示法
{
console.log('a',`\u0061`)
//a a
console.log('s',`\u20BB7`)
//s ₻7
console.log('s',`\u{20BB7}`)
//s ????
// 当值超过2个字节的时候,只截取前四个当成一个字符,需要用大括号包起来
}
es5处理unicode码
{
//es5处理unicode码
let s='????';
console.log(s.length)
//2
console.log(s.charAt(0))
console.log(s.charAt(1))
console.log(s.charCodeAt(0))
console.log(s.charCodeAt(1))
//� � 55362 57271
//当值超过2个字节的时候,计算长度的时候会计算成2
}
es6处理unicode码
{
//es6处理unicode码
let s='????a';
console.log(s.length)
//3
console.log(s.codePointAt(0))
console.log(s.codePointAt(1))
console.log(s.codePointAt(2))
console.log(s.codePointAt(0).toString(16))
//134071 57271 97 20bb7
}
{
console.log(String.fromCharCode('0x20bb7'))
console.log(String.fromCodePoint('0x20bb7'))
//ஷ ????
}
字符串遍历接口
{
//es5字符串遍历
let str='\u{20bb7}abc';
for(let i=0;i<str.length;i++){
console.log('es5',str[i])
}
// es5 �
// es5 �
// es5 a
// es5 b
// es5 c
for(let code of str){
console.log('es6',code)
}
// es6 ????
// es6 a
// es6 b
// es6 c
}
es6中新增加了let a of str的方法,用于处理字符串的遍历,能够解决处理字符串中某个字符大于2个字节的情况。
includes,startsWith和endsWith,repeat方法
includes判断字符串中是否包含某个字符,startsWith判断某个字符是不是起始,endsWith判断某个字符是不是结束字符,repeat字符串重复
{
let str='string';
console.log(str.includes('r'))
console.log(str.includes('v'))
//true false
console.log(str.startsWith('s'))
console.log(str.endsWith('ng'))
//true true
//字符串复制
let str='abc';
console.log(str.repeat(2));
//abcabc
}
模板字符串
{
let name='list';
let info='hello world';
let m=`这是模板字符串${name},${info}`;
console.log(m)
//这是模板字符串list,hello world
}
必须是${}的形式
es7草案,补白功能。padStart和padEnd
{
//向前补白
console.log('1'.padStart(2,'0'));
//01
//向后补白
console.log('1'.padEnd(2,'0'));
//10
}
模板字符串
{
let user={
name:'list',
info:'hello world'
};
abc`i am $(user.name),${user.info}`;
function abc(s,v1,v2){
console.log(s,v1,v2);
return s+v1+v2;
}
}
String.raw方法
//raw对所有的/进行转义
{
console.log(String.raw`Hi\n${1+2}`)
//Hi\n3
console.log(`Hi\n${1+2}`)
//Hi
//3
}
上一篇: three.js创建场景实例详解
下一篇: 04_10.字符串的扩展方法.js