字符串擴展

字符串擴展

  • 1.字符的 Unicode 表示法
    • ES6 對這一點做出了改進,只要將碼點放入大括號,就能正確解讀該字符。
  • 2.codePointAt()
    • JavaScript 內(nèi)部,字符以 UTF-16 的格式儲存,每個字符固定為2個字節(jié)。對于那些需要4個字節(jié)儲存的字符(Unicode 碼點大于0xFFFF的字符),JavaScript 會認為它們是兩個字符。
    • ES6 提供了codePointAt方法,能夠正確處理 4 個字節(jié)儲存的字符,返回一個字符的碼點。
  • 3.String.fromCodePoint()
    • ES5 提供String.fromCharCode方法,用于從碼點返回對應(yīng)字符,但是這個方法不能識別 32 位的 UTF-16 字符(Unicode 編號大于0xFFFF)
    • ES6 提供了String.fromCodePoint方法,可以識別大于0xFFFF的字符,彌補了String.fromCharCode方法的不足。在作用上,正好與codePointAt方法相反。
      字符串的遍歷器接口
    • ES6 為字符串添加了遍歷器接口(詳見《Iterator》一章),使得字符串可以被for...of循環(huán)遍歷。
    • 除了遍歷字符串,這個遍歷器最大的優(yōu)點是可以識別大于0xFFFF的碼點,傳統(tǒng)的for循環(huán)無法識別這樣的碼點。
  • 4.at()
    • ES5 對字符串對象提供charAt方法,返回字符串給定位置的字符。該方法不能識別碼點大于0xFFFF的字符。
    • 目前,有一個提案,提出字符串實例的at方法,可以識別 Unicode 編號大于0xFFFF的字符,返回正確的字符。
  • 5.normalize()
    • ES6 提供字符串實例的normalize()方法,用來將字符的不同表示方法統(tǒng)一為同樣的形式,這稱為 Unicode 正規(guī)化。
  • 6.includes(), startsWith(), endsWith()(2個參數(shù),第一個字符串,第二個第幾位開始)
    • includes():返回布爾值,表示是否找到了參數(shù)字符串。
    • startsWith():返回布爾值,表示參數(shù)字符串是否在原字符串的頭部。
    • endsWith():返回布爾值,表示參數(shù)字符串是否在原字符串的尾部。
  • 7.repeat()(參數(shù)是數(shù)字)
    • repeat方法返回一個新字符串,表示將原字符串重復n次。
      padStart(),padEnd()(第一個參數(shù)是字符串長度,第二個參數(shù)是要循環(huán)的字符串)
    • ES2017 引入了字符串補全長度的功能。如果某個字符串不夠指定長度,會在頭部或尾部補全。padStart()用于頭部補全,padEnd()用于尾部補全。
  • 8.matchAll()
    • matchAll方法返回一個正則表達式在當前字符串的所有匹配,詳見《正則的擴展》的一章。
      模板字符串(可以保留標簽或者變量值)
    • ` 會保留空格 ${(放入變量,甚至js代碼)}
  • 9.實例:模板編譯
  • 10.標簽模板
  • 11.String.raw()
    • String.raw方法,往往用來充當模板字符串的處理函數(shù),返回一個斜杠都被轉(zhuǎn)義(即斜杠前面再加一個斜杠)的字符串,對應(yīng)于替換變量后的模板字符串。
      模板字符串的限制
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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