ES6的一些笔记(二)

模板字符串


${}中可以嵌入变量和表达式

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返回值为当前下标字符所对应的编码值,注意的是虽然ES6ES5有所提升但是仍然有所缺陷。

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");
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容