字符串的遍歷器接口
es6為字符串添加了遍歷器接口,使得字符串可以被 for...of
循環(huán)遍歷。
for(let codePoint of 'foo'){
console.log(codePoint);
}
includes(), startsWith(), endWith()
- includes():返回布爾值,表示是否找到參數(shù)字符串
- startsWith():返回布爾值,表示參數(shù)字符串是否在原字符串的頭部。
- endsWith():返回布爾值,表示參數(shù)字符串是否在原字符串的尾部
var s="Hello world!";
s.startsWith('Hello')//true
s.endWith('!')//true
s.includes('o')//true
以上三個(gè)方法都支持第二個(gè)參數(shù),表示開(kāi)始搜索的位置。
var s = 'Hello world!';
s.startsWith('world', 6) // true
s.endsWith('Hello', 5) // true
s.includes('Hello', 6) // false
上面代碼表示,使用第二個(gè)參數(shù)n
時(shí),endsWith
的行為與其他兩個(gè)方法有所不同。它針對(duì)前n
個(gè)字符,而其他兩個(gè)方法針對(duì)從第n
個(gè)位置直到字符串結(jié)束。
repeat()
repeat
方法返回一個(gè)新字符串,表示將原字符串重復(fù)n
次。
'x'.repeat(3)//"xxx"
'hello'.repeat(2)// "hellohello"
'na'.repeat(0)// ""
padStart(), padEnd()
padStart()
用于頭部補(bǔ)全,padEnd()
用于尾部補(bǔ)全。
'x'.padStart(5,'ab') //'ababx'
'x'.padStart(4,'ab')//'abax'
'x'.padEnd(5,'ab') // 'xabab'
'x'.padEnd(4,'ab')//'xaba'
上面代碼中,padStart
和padEnd
一共接受兩個(gè)參數(shù),第一個(gè)參數(shù)用來(lái)指定字符串的最小長(zhǎng)度,第二個(gè)參數(shù)是用來(lái)補(bǔ)全的字符串。
模板字符串
傳統(tǒng)的模板
$('#result').append(
'There are <b>' + basket.count + '</b> ' +
'items in your basket, ' +
'<em>' + basket.onSale +
'</em> are on sale!'
);
es6模板字符串
$('#result').append(`
There are <b>${basket.count}</b> items
in your basket, <em>${basket.onSale}</em>
are on sale!
`);
如果用模板字符串,所有的縮進(jìn)都保留在輸出中,要想消除,須使用trim方法。
//ul標(biāo)簽前面會(huì)有一個(gè)換行
$('#list').html(`
<ul>
<li>first</li>
<li>second</li>
</ul>
`);