String

字符的Unicode表示法

JavaScript可以用Unicode表示一個(gè)字符,但是只限于碼點(diǎn)在\u0000~\uffff之間的字符超過的必須用雙字節(jié)表示.
但是ES6進(jìn)行了改進(jìn),只要將碼點(diǎn)放入大括號(hào),就能正確解讀

"\u20BB7"  //超過0xFFFF 所以被解析成u20BB + 7  
"\u{20BB7}"
codePointAt

該方法可以正確處理四字節(jié)處理的字符,并返回一個(gè)字符的碼點(diǎn)(十進(jìn)制)
對(duì)于兩個(gè)字節(jié)存儲(chǔ)的字符,返回結(jié)果與charCodeAt方法相同
存在一個(gè)問題:參數(shù)不正確,對(duì)于四字節(jié)的字,會(huì)占用兩個(gè)位置,讀取第一個(gè)位置會(huì)返回正確的結(jié)果,第二個(gè)位置為該字符的后兩個(gè)字節(jié).解決方法使用 for...of

var s = '??a';
for (let ch of s) {
  console.log(ch.codePointAt(0).toString(16));
}
String.fromCodePoint

該方法與String.fromCharCode方法類似,單證方法能識(shí)別大于0xFFFF的碼點(diǎn),如果有多個(gè)參數(shù),那么會(huì)被合并成一個(gè)字

String.fromCodePoint(0x78, 0x1f680, 0x79) === 'x\uD83D\uDE80y' //true
includes(), startsWith(), endsWith()

<small>includes():返回布爾值,表示是否找到了參數(shù)字符串。
startsWith():返回布爾值,表示參數(shù)字符串是否在源字符串的頭部。
endsWith():返回布爾值,表示參數(shù)字符串是否在源字符串的尾部。</small>
三個(gè)方法都接受第二個(gè)參數(shù),表示從第幾位開始

repeat(),padStart(),padEnd()

repeat()返回一個(gè)字符串,參數(shù)表示將原字符串重復(fù)多少次

'a'.repeat(2)// 'aaa'

padStart(),padEnd)()兩個(gè)方法,都是用來補(bǔ)全字符串前者頭部補(bǔ)全,后者尾部補(bǔ)全,兩個(gè)參數(shù),第一個(gè)指定字符串的最小長(zhǎng)度,第二個(gè)用來補(bǔ)全的字符串,如果省略第二個(gè)參數(shù),則會(huì)用空格補(bǔ)全

'aaa'.padStart(10,'b')  // 'bbbbbbbbaaa'
'aaa'.padEnd(10,'b')  // 'aaabbbbbbbb'
字符串模板

增強(qiáng)版的字符串,用反引號(hào) ( ` )標(biāo)示.可以當(dāng)做普通字符串,也可以定義多行字符串,或嵌入變量

var name  = 'abc'
var str = ` my name is ${name}` //'my name is abc'

大括號(hào)內(nèi)可以放入任意的表達(dá)式,或者函數(shù); 如果大括號(hào)中的值不是字符串,會(huì)按照一般規(guī)則轉(zhuǎn)為字符串
字符串模板也可以進(jìn)行嵌套

var data = [ {a:1,b:2}, {a:2,b:4} ]
var str = `<ul>
           ${data.map( (item)=>`<li>a:${item.a},b:${item.b}</li>` )}
       </ul>`
//<ul>
<li>a:1,b:2</li>
<li>a:2,b:4</li>
</ul>

注意:模板字符串的空格和換行都會(huì)被保留..

此外,字符串模板的功能還有很多...

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Java String類 Java lang.String類用法實(shí)例教程。 簡(jiǎn)介java.lang.String類...
    呵呵飄過閱讀 563評(píng)論 0 0
  • string庫提供了字符串處理的通用函數(shù)。 例如字符串查找、子串、模式匹配等。 當(dāng)在 Lua 中對(duì)字符串做索引時(shí),...
    chiguozi閱讀 4,223評(píng)論 0 3
  • String對(duì)象是JavaScript原生提供的三個(gè)包裝對(duì)象之一,用來生成字符串的包裝對(duì)象。 上面代碼中,變量s1...
    zjh111閱讀 655評(píng)論 0 0
  • 字符的 Unicode 表示法 codePointAt() String.fromCodePoint() 字符串的...
    卞卞村長(zhǎng)L閱讀 840評(píng)論 0 0
  • 幾天前,我和一同學(xué)晚上去吃宵夜,本來應(yīng)該是一個(gè)蠻愉快的晚上,但我們聊著聊著就陷入尷尬了。 反正我是很莫名的,我的同...
    氵點(diǎn)滴閱讀 494評(píng)論 0 1

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