String.raw
String.raw
是一個模板字串的標籤函式(如果你不知道什麼是標籤函式,點⚑),它返回模板字串的原始字串。比如說\n
不會被當成換行處理,而是被當做兩個普通字元\
和n
:console.log(String.raw`1\n2`); //1\n2
通常,我們不需要把它當做普通函式來呼叫,但是如果你一定要把它當做普通函式呼叫的話,要注意傳入引數的格式:
(template: { raw: readonly string[] | ArrayLike<string>; }, ...substitutions: any[])=>string
String.raw
的第一個引數必須是一個有raw
屬性的物件,該屬性值為字元陣列或者字元類陣列,剩餘引數就是插入的值。console.log(String.raw({ raw: 'abcd' }, 0, 1, 2)); //a0b1c2d //3 4兩個插值超出了模板陣列的範圍,會被忽略 console.log(String.raw({ raw: ['a', 'b', 'c', 'd'] }, 0, 1, 2, 3, 4)); //a0b1c2d
String.prototype.repeat
函式型別:
(count?:number)=>string
repeat
函式會根據傳入的引數n
,返回一個原字串重複了n
次的新字串,引數n
預設為0
。//傳入0或者不傳引數時,原字串重複0次,返回空字串 console.log('a'.repeat(0));// '' console.log('a'.repeat(2));// 'aa'
String.prototype.startsWith,String.prototype.endsWith,String.prototype.includes
函式型別:
(queryString?:string,startPosition?:number)=>boolean
startsWith
、endsWidth
和includes
函式都是ES6新增的用於檢查字串的函式,它們接收兩個引數,第一個引數queryString
是要在原字串中查詢的字串,第二個引數startPostion
是開始查詢的位置。在includes
和startsWith
中,startPosition
預設值為0
,在endsWith
中,startPostion
預設為原字串的length
。console.log('abcde'.includes('a')); //true //改變起始位置 console.log('abcde'.includes('a', 1)); //false console.log('abcde'.startsWith('a')); //true //改變起始位置 console.log('abcde'.startsWith('a', 1)); //false console.log('abcde'.endsWith('a')); //false //改變起始位置 console.log('abcde'.endsWith('a', 1)); //true
要注意的是,當要檢查的字串,即引數
queryString
為空字串''
時,這三個函式的返回結果始終為true
。console.log('abcde'.includes('')); //true //改變起始位置 console.log('abcde'.includes('', 1)); //true console.log('abcde'.startsWith('')); //true //改變起始位置 console.log('abcde'.startsWith('', 1)); //true console.log('abcde'.endsWith('')); //true //改變起始位置 console.log('abcde'.endsWith('', 1)); //true