ES6+ startsWith()
1. 前言
在 ES5 中用于查找字符串的方法很少,上一節(jié) 我們學(xué)習(xí)了 includes()
方法,它是針對(duì)整個(gè)字符串進(jìn)行查找的,本節(jié)要介紹 ES6 的字符串新增方法 startsWith()
,該方法用來(lái)判斷當(dāng)前字符串是否以給定的字符串作為開(kāi)頭。
字符串查找是有一定的算法的,雖然用 includes()
方法可以判斷,無(wú)疑只查找字符串的開(kāi)頭算法的時(shí)間復(fù)雜度是很低的,但是使用 includes()
就需要對(duì)整個(gè)字符串進(jìn)行查找,時(shí)間復(fù)雜度也會(huì)很高。在查找長(zhǎng)字符串時(shí)也會(huì)比較耗費(fèi)性能,雖然在測(cè)試過(guò)程中這種差別幾乎可以被忽略,但是它的語(yǔ)義化讓我們的代碼可讀性更高。
2. 方法詳情
startsWith()
用于判斷一個(gè)字符串,是否以一個(gè)指定字符串為起始的,如果是字符串的開(kāi)頭找到了給定的字符則返回 true,否則返回 false。
使用語(yǔ)法:
str.startsWith(searchString[, position])
參數(shù)說(shuō)明:
參數(shù) | 描述 |
---|---|
searchString | 要搜索的子字符串。 |
position | (可選) 在 str 中搜索 searchString 的開(kāi)始位置,默認(rèn)值為 0,也就是真正的字符串開(kāi)頭處。 |
實(shí)例:
const str1 = 'I love imooc.';
console.log(str1.startsWith('I')); // true
console.log(str1.startsWith('I', 3)); // false
3. 使用場(chǎng)景
確定一個(gè)字符串是否以另一個(gè)字符串開(kāi)頭,但是使用得比較少,使用比較多的是 includes()
。
3.1 一個(gè)參數(shù)
var str = "I love imooc.";
console.log(str.startsWith("I love")); // true
console.log(str.startsWith("imooc")); // false
console.log(str.startsWith("eimooc")); // false
3.2 兩個(gè)參數(shù)
var str = "I love imooc.";
console.log(str.startsWith("love", 3)); // false
console.log(str.startsWith("ove", 3)); // true
第二個(gè)參數(shù)的意思是,字符串的位置,上面第二個(gè)參數(shù)是 3 說(shuō)明是從字符串的第三個(gè)字符開(kāi)始往后,包括第三個(gè)字符。所以第一個(gè)返回的結(jié)果為 false。
4. 小結(jié)
在查詢字符串中的開(kāi)頭時(shí)可以使用 startsWith
或者 includes()
,在字符串少的情況下,它們的效率基本沒(méi)有差別。但是如果在查詢以某字符串開(kāi)頭的時(shí)候,使用 startsWith
會(huì)很有語(yǔ)義化,利于代碼閱讀。