ES6+ repeat()
1. 前言
本節(jié)介紹 ES6 的字符串新增方法 repeat
,以一個(gè)目標(biāo)字符串進(jìn)行聲明,對(duì)該字符串進(jìn)行重復(fù)操作,但不會(huì)改變?cè)址?/p>
2. 方法詳情
使用語(yǔ)法:
let resultString = str.repeat(count);
該方法構(gòu)造并返回一個(gè)新字符串,表示將原字符串重復(fù) n 次,并不會(huì)改變?cè)址?/p>
參數(shù)說(shuō)明:
參數(shù) | 描述 |
---|---|
count | 介于 0 和正無(wú)窮大之間的整數(shù): [0, +∞)。表示在新構(gòu)造的字符串中重復(fù)了多少遍原字符串。count 取負(fù)數(shù)的時(shí)候會(huì)報(bào)錯(cuò),但是在 (-1.0] 之間不會(huì)報(bào)錯(cuò),而會(huì)把 count 處理成 0 |
3. 使用場(chǎng)景
- 可以通過(guò)這個(gè)方法拷貝一個(gè)相同的字符串;
- 取代循環(huán)拼接多個(gè)相同的字符串,會(huì)比使用 for 循環(huán)優(yōu)雅,方便。
4. 實(shí)例
4.1 參數(shù)是小數(shù)
參數(shù)如果是小數(shù),會(huì)被取整。
"imooc".repeat(2.6) // "imoocimooc"
參數(shù) 2.6 會(huì)被向下自動(dòng)轉(zhuǎn)換成整數(shù),注意這里不會(huì)進(jìn)位成 3。
4.2 負(fù)數(shù) 和 Infinity
如果 repeat 的參數(shù)是負(fù)數(shù)或者 Infinity,會(huì)報(bào)錯(cuò)。
'imooc'.repeat(Infinity) // RangeError
"imooc".repeat(-1) // 無(wú)效的數(shù)字
4.3 0~1 和 0~- 1
如果參數(shù)是 0 到 - 1 或 0 到 1 都會(huì)先進(jìn)行取整運(yùn)算,所以在這兩個(gè)范圍內(nèi)都會(huì)被 repeat
視同為 0。
'imooc'.repeat(0.9) // ''
"imooc".repeat(-0.8) // ''
4.4 參數(shù) NaN 等同于 0
'imooc'.repeat(NaN) // ''
4.4 參數(shù)是字符串
如果 repeat 的參數(shù)是字符串,則會(huì)先轉(zhuǎn)換成數(shù)字。
'imooc'.repeat('two') // ''
'imooc'.repeat('2') // 'imoocimooc'
5. 小結(jié)
本節(jié)講解了字符串的 repeat()
方法的使用,需要注意以下幾點(diǎn):
- 重復(fù)次數(shù)不能為負(fù)數(shù);
- 重復(fù)次數(shù)必須小于 infinity,且長(zhǎng)度不會(huì)大于最長(zhǎng)的字符串。