ES(5)之字符串的擴(kuò)展方法


加強(qiáng)了對(duì)Unicode的支持

在ES5中,js支持用\uxxxx來(lái)表示一個(gè)數(shù)字,其中xxxx表示字符的Unicode碼點(diǎn)。這種表示方法僅限于碼點(diǎn)在\u0000~\uFFFF之間的字符,超出這個(gè)碼點(diǎn)的字符必須用兩個(gè)雙字節(jié)表示,但是ES5只能識(shí)別兩個(gè)字節(jié)組成的字符,但ES6中增加了對(duì)兩個(gè)雙字節(jié)字符的支持

  • 方法:將碼點(diǎn)包裹在花括號(hào)中

    a = '\u{12FFF}';
    

新的循環(huán)方法

ES6中提供了一個(gè)新的循環(huán)方式for of

  • 特點(diǎn):可以將超過(guò)字節(jié)數(shù)的數(shù)字進(jìn)行循環(huán)遍歷,這種循環(huán)更加可靠

  • 格式:for(let word of 變量名)

    let a = \u{20ffc};
    for(let word of a){
        console.log(word);
    }
    

字符串新方法

  • include:判斷主串中是否含有對(duì)應(yīng)的子串

    let str = 'hello world';
    console.log(str.include('he'));     //true
    
  • startsWith:判斷主串是否以對(duì)應(yīng)的子串開(kāi)頭

    • 參數(shù)一:查找的子串,如果不填會(huì)返回false
    • 參數(shù)二:字符串開(kāi)始位置,從零開(kāi)始
    let str = 'hello world';
    console.log(str.startsWith('he'));  //true
    console.log(str.startsWith('ll',2));    //true
    
  • endsWith:判斷主串是否以對(duì)應(yīng)的子串結(jié)尾

    • 參數(shù)一:查找的子串,如果不填會(huì)返回false
    • 參數(shù)二:字符串截止在第x個(gè)字符前(從零開(kāi)始)
    let str = 'hello world';
    console.log(str.endsWith('lo',4));  //false
    console.log(str.endsWith('lo',5));  //true
    console.log(str.endsWith('lo',6));  //false
    
  • repeat:將字符串重復(fù)n次,返回新的字符串

    let str = 'hello world';
    str = str.repeat(3);
    console.log(str);   //hello worldhello worldhello world
    
  • padStart:用子串在字符串開(kāi)始處進(jìn)行補(bǔ)全

    • 參數(shù)一:補(bǔ)全到多少位
    • 參數(shù)二:用來(lái)補(bǔ)全的子串
    let str = 'hello world';
    str = str.padStart(15,'abcde');
    console.log(str);   //abcdhello world
    
  • padEnd:用子串在字符串結(jié)束位置進(jìn)行補(bǔ)全

    • 參數(shù)一:補(bǔ)全到多少位
    • 參數(shù)二:用來(lái)補(bǔ)全的子串
    let str = 'hello world';
    str = str.padEnd(15,'abcde');
    console.log(str);   //hello worldabcd
    

模板字符串

如果要加入字符串并導(dǎo)入HTML,以前需要這樣做

let obj = {
    username:'xiaoming',
    age:'18'
    gender:'male'
}
let  tag = '<div><span>' + obj.username + '</span><span>' + obj.age + '</span><span>' + obj.gender + '</span></div>' 

但在ES6中我們使用模板字符串即可

let tpl = `
  <div>
      <span>${obj.username}</span>
      <span>${obj.age}</span>
      <span>${obj.gender}</span>
  </div>
`

現(xiàn)在我們只需要在字符串中使用`${變量名}`就可以實(shí)現(xiàn)字符串的替換了。相比ES5的‘+’號(hào)連接,這樣的方法更加清晰可讀性更強(qiáng),同時(shí)模板字符串能夠保留字符串的輸入格式,空格及回車(chē)都可以保留,現(xiàn)在我們可以更加輕松的在js中寫(xiě)入HTML的代碼了

注意

  • 大括號(hào)中的值不是字符串時(shí),將按照一般的規(guī)則轉(zhuǎn)換成字符串,例如大括號(hào)中的是一個(gè)對(duì)象,那么將默認(rèn)調(diào)用對(duì)象的toString方法
  • 模板字符串中的${....}可以放入任意javaScript的表達(dá)式,可以進(jìn)行運(yùn)算,引用對(duì)象屬性,調(diào)用函數(shù),也可以嵌套,甚至還可以調(diào)用自己本身
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容