亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

ES6+ startsWith()

1. 前言

在 ES5 中用于查找字符串的方法很少,上一節 我們學習了 includes()方法,它是針對整個字符串進行查找的,本節要介紹 ES6 的字符串新增方法 startsWith(),該方法用來判斷當前字符串是否以給定的字符串作為開頭。

字符串查找是有一定的算法的,雖然用 includes() 方法可以判斷,無疑只查找字符串的開頭算法的時間復雜度是很低的,但是使用 includes() 就需要對整個字符串進行查找,時間復雜度也會很高。在查找長字符串時也會比較耗費性能,雖然在測試過程中這種差別幾乎可以被忽略,但是它的語義化讓我們的代碼可讀性更高。

2. 方法詳情

startsWith() 用于判斷一個字符串,是否以一個指定字符串為起始的,如果是字符串的開頭找到了給定的字符則返回 true,否則返回 false。

使用語法:

str.startsWith(searchString[, position])

參數說明:

參數 描述
searchString 要搜索的子字符串。
position (可選) 在 str 中搜索 searchString 的開始位置,默認值為 0,也就是真正的字符串開頭處。

實例:

const str1 = 'I love imooc.';

console.log(str1.startsWith('I'));     // true
console.log(str1.startsWith('I', 3));  // false

3. 使用場景

確定一個字符串是否以另一個字符串開頭,但是使用得比較少,使用比較多的是 includes()。

3.1 一個參數

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 兩個參數

var str = "I love imooc.";

console.log(str.startsWith("love", 3));   // false
console.log(str.startsWith("ove", 3));    // true

第二個參數的意思是,字符串的位置,上面第二個參數是 3 說明是從字符串的第三個字符開始往后,包括第三個字符。所以第一個返回的結果為 false。

4. 小結

在查詢字符串中的開頭時可以使用 startsWith 或者 includes(),在字符串少的情況下,它們的效率基本沒有差別。但是如果在查詢以某字符串開頭的時候,使用 startsWith 會很有語義化,利于代碼閱讀。