三宠进、字符串的拓展
#3.1 includes(),startsWith(),endsWith()
在我們判斷字符串是否包含另一個字符串時,ES6之前萝风,我們只有typeof
方法嘀掸,ES6之后我們又多了三種方法:
- includes():返回布爾值,表示是否找到參數(shù)字符串规惰。
- startsWith():返回布爾值睬塌,表示參數(shù)字符串是否在原字符串的頭部。
- endsWith():返回布爾值,表示參數(shù)字符串是否在原字符串的尾部揩晴。
let a = 'hello leo';
a.startsWith('leo'); // false
a.endsWith('o'); // true
a.includes('lo'); // true
并且這三個方法都支持第二個參數(shù)勋陪,表示起始搜索的位置。
let a = 'hello leo';
a.startsWith('leo',1); // false
a.endsWith('o',5); // true
a.includes('lo',6); // false
endsWith
是針對前 n
個字符硫兰,而其他兩個是針對從第n
個位置直到結(jié)束诅愚。
#3.2 repeat()
repeat
方法返回一個新字符串,表示將原字符串重復(fù)n
次劫映。
基礎(chǔ)用法:
'ab'.repeat(3); // 'ababab'
'ab'.repeat(0); // ''
特殊用法:
- 參數(shù)為
小數(shù)
违孝,則取整
'ab'.repeat(2.3); // 'abab'
- 參數(shù)為
負(fù)數(shù)
或Infinity
,則報(bào)錯
'ab'.repeat(-1); // RangeError
'ab'.repeat(Infinity); // RangeError
- 參數(shù)為
0到-1的小數(shù)
或NaN
苏研,則取0
'ab'.repeat(-0.5); // ''
'ab'.repeat(NaN); // ''
- 參數(shù)為
字符串
等浊,則轉(zhuǎn)成數(shù)字
'ab'.repeat('ab'); // ''
'ab'.repeat('3'); // 'ababab'
#3.3 padStart(),padEnd()
用于將字符串頭部或尾部補(bǔ)全長度腮郊,padStart()
為頭部補(bǔ)全摹蘑,padEnd()
為尾部補(bǔ)全。
這兩個方法接收2個參數(shù)轧飞,第一個指定字符串最小長度衅鹿,第二個用于補(bǔ)全的字符串。
基礎(chǔ)用法 :
'x'.padStart(5, 'ab'); // 'ababx'
'x'.padEnd(5, 'ab'); // 'xabab'
特殊用法:
- 原字符串長度过咬,大于或等于指定最小長度大渤,則返回原字符串。
'xyzabc'.padStart(5, 'ab'); // 'xyzabc'
- 用來補(bǔ)全的字符串長度和原字符串長度之和掸绞,超過指定最小長度泵三,則截去超出部分的補(bǔ)全字符串。
'ab'.padStart(5,'012345'); // "012ab"
- 省略第二個參數(shù)衔掸,則用
空格
補(bǔ)全烫幕。
'x'.padStart(4); // ' x'
'x'.padEnd(4); // 'x '
#3.4 模版字符串
用于拼接字符串,ES6之前:
let a = 'abc' +
'def' +
'ghi';
ES6之后:
let a = `
abc
def
ghi
`
拼接變量: 在**反引號()**中使用
${}`包裹變量或方法敞映。
// ES6之前
let a = 'abc' + v1 + 'def';
// ES6之后
let a = `abc${v1}def`