模板字符串
${}
中可以嵌入变量和表达式
var a = 1;
var b = 2;
var str = `
<ul>
<li>${a}</li>
<li>${b}</li>
</ul>`
字符串的解析构值
var [c,p] = "呵呵";
console.log(c + "+" + p); // 呵+呵
字符串方法的扩展
includes(string,index):
includes(string,index)
判断一个字符串中是否包含了某个字符串,index参数代表的是从哪里开始搜索,,注意index是从0开始的。
var str = "ZI符串";
console.log(str.includes("ZI")); //true
console.log(str.includes("ZI",1)); //false
startsWith(string,index):
startsWith(string,index)
判断一个字符串是否头部包含了某个字符串,index表示从哪里开始计算,注意index是从0开始的。
var str = "ZI符串";
console.log(str.startsWith("I")); //false
console.log(str.startsWith("I",1)); //true
endsWith(string,index):
endsWith(string,index)
判断一个字符串是否在尾部包含了某个字符串,index表示从哪里开始计算,注意index是从0开始的。
var str = "ZI符串";
console.log(str.endsWith("串")); //true
console.log(str.endsWith("串",1)); //false
console.log(str.endsWith("Z",1)); //true
console.log(str.endsWith("Z",0)); //false
console.log(str.endsWith("Z",2)); //false
repeat(number):
repeat(number)
将字符串复制N次注意的是0次就消失了1次不会产生变化,得到的是一个新的字符串要用一个变量去接收。
var str = "ZI符串";
var new = str.repeat(2); // ZI符串ZI符串
codePointAt(index):
codePointAt(index)
字符串方法,传入的是字符串的index返回值为当前下标字符所对应的编码值,注意的是虽然ES6
比ES5
有所提升但是仍然有所缺陷。
var str = "NSString";
var num =str.codePointAt(0);
console.log(num); //83
var str = "字符串";
var num =str.codePointAt(2);
console.log(num); // 20018
fromCharCode(code):
fromCharCode(code)
与codePointAt(index)
正好相反根据编码返回字符串
var str = String.fromCodePoint(20018);
console.log(str); // 串
normalize():
normalize()
语调符号和重音符号的统一,Unicode正规化()
中有4个参数来选择NFC
默认的,返回多个简单字符的合成字符。NFD
即在标准等价的前提下,返回合成字符分解的多个简单字符。NFKC
返回合成字符。NFKD
返回合成字符分解的多个简单字符。
str.normalize('NFC'); // 需求中没遇到过
字符串与新的遍历方式
for(let x of string){}
可以将字符串每个都取出放到名叫x的常量中来进行循环
var str = "ZI符串";
for(let index of str){
console.log(index); // 打印 Z I 符 串
}
Iterator
接口,每个字符串中都有一个Symbol.iterator函数,调用后可以返回一个Iterator对象,这个对象有一个next方法,其方法是通过指针的偏移达到遍历内存中的所有字符。
var str = "ABCDEFG";
var Iterator = str[Symbol.iterator();
console.log(Iterator.next()) // Object {value: "A", done: false}
console.log(Iterator.next()) // Object {value: "B", done: false}
console.log(Iterator.next()) // Object {value: "C", done: false}
console.log(Iterator.next()) // Object {value: "D", done: false}
console.log(Iterator.next()) // Object {value: "E", done: false}
console.log(Iterator.next()) // Object {value: "F", done: false}
console.log(Iterator.next()) // Object {value: "G", done: false}
console.log(Iterator.next()) // Object {value: undefined, done: true}
console.log(Iterator.next()) // Object {value: undefined, done: true}
貌似暂时并未实行
at(index)
at(index)
根据下表取出对应的字符
var str = "ZI符串";
for(let i = 0;i<str.length;i++){
if(str.at(i) === "I"){
console.log("有I");
}
}
padStart(number,string)
padStart(number,string)
根据number来计算字符串的长度如果不够会在后面进行补位
var str = "100";
str.padStart(6,"00");
padEnd(number,string)
padEnd(number,string)
根据number来计算字符串的长度如果不够会在前面进行补位
var str = "100";
str.padEnd(6,"00");