ES5字符串方法
1. String.fromCharCode() 該方法的參數是一系列Unicode碼點,返回對應的字符串。
2. charAt() 該方法返回指定位置的字符,參數是從0
開始編號的位置。
var s = new String('abc'); s.charAt(1) // "b" s.charAt(s.length - 1) // "c" // 這個方法完全可以用數組下標替代。 'abc'.charAt(1) // "b" 'abc'[1] // "b"
3. charCodeAt()方法返回給定位置字符的Unicode碼點(十進制表示),相當於String.fromCharCode()
的逆操作。
4. concat() 方法用於連接兩個字符串,返回一個新字符串,不改變原字符串。
5. slice() 方法用於從原字符串取出子字符串並返回,不改變原字符串。它的第一個參數是子字符串的開始位置,第二個參數是子字符串的結束位置(不含該位置)。
6. substring() 方 法用於從原字符串取出子字符串並返回,不改變原字符串。它與slice
作用相同,但有一些奇怪的規則,因此不建議使用這個方法,優先使用slice
。此
方法的第一個參數表示子字符串的開始位置,第二個位置表示結束位置。
7. substr()方法用於從原字符串取出子字符串並返回,不改變原字符串。此
方法的第一個參數是子字符串的開始位置,第二個參數是子字符串的長度。
8. indexOf(),lastIndexOf()這兩個方法用於確定一個字符串在另一個字符串中的位置,都返回一個整數,表示匹配開始的位置。如果返回-1
,就表示不匹配。兩者的區別在於,indexOf
從字符串頭部開始匹配,lastIndexOf
從尾部開始匹配。
9. trim() 方法用於去除字符串兩端的空格,返回一個新字符串,不改變原字符串。
10. toLowerCase(),toUpperCase(),toLowerCase
方法用於將一個字符串全部轉為小寫,toUpperCase
則是全部轉為大寫。它們都返回一個新字符串,不改變原字符串。
11. localeCompare()方法用於比較兩個字符串。它返回一個整數,如果小於0,表示第一個字符串小於第二個字符串;如果等於0,表示兩者相等;如果大於0,表示第一個字符串大於第二個字符串。
12. match()方法用於確定原字符串是否匹配某個子字符串,返回一個數組,成員為匹配的第一個字符串。如果沒有找到匹配,則返回null
。
13. search() 方法的用法等同於match
,但是返回值為匹配的第一個位置。如果沒有找到匹配,則返回-1
。
14. replace() 方法用於替換匹配的子字符串,一般情況下只替換第一個匹配(除非使用帶有g
修飾符的正則表達式)。
15. split() 方法按照給定規則分割字符串,返回一個由分割出來的子字符串組成的數組。
ES6字符串的方法
1. 字符的 Unicode 表示法
2. codePointAt() JavaScript 內部,字符以 UTF-16 的格式儲存,每個字符固定為2
個字節。對於那些需要4
個字節儲存的字符(Unicode 碼點大於0xFFFF
的字符),JavaScript 會認為它們是兩個字符。
3. String.fromCodePoint() ES5 提供String.fromCharCode
方法,用於從碼點返回對應字符,但是這個方法不能識別 32 位的 UTF-16 字符(Unicode 編號大於0xFFFF
)。
4. 字符串的遍歷器接口 ES6 為字符串添加了遍歷器接口(Iterator),使得字符串可以被for...of
循環遍歷。
5. at() ES5 對字符串對象提供charAt
方法,返回字符串給定位置的字符。該方法不能識別碼點大於0xFFFF
的字符。
6. normalize() 許多歐洲語言有語調符號和重音符號。為了表示它們,Unicode 提供了兩種方法。一種是直接提供帶重音符號的字符,比如Ǒ
(\u01D1)。另一種是提供合成符號(combining character),即原字符與重音符號的合成,兩個字符合成一個字符,比如O
(\u004F)和ˇ
(\u030C)合成Ǒ
(\u004F\u030C)。
7. includes(), startsWith(), endsWith()
傳統上,JavaScript 只有indexOf
方法,可以用來確定一個字符串是否包含在另一個字符串中。ES6 又提供了三種新方法。
a). includes():返回布爾值,表示是否找到了參數字符串。
b). startsWith():返回布爾值,表示參數字符串是否在原字符串的頭部。
c). endsWith():返回布爾值,表示參數字符串是否在原字符串的尾部。
8. repeat() 方法返回一個新字符串,表示將原字符串重復n
次。
9. padStart(),padEnd() ES2017 引入了字符串補全長度的功能。如果某個字符串不夠指定長度,會在頭部或尾部補全。padStart()
用於頭部補全,padEnd()
用於尾部補全。
10. 模板字符串
11. 模板編譯
12. 標簽模板 模板字符串的功能,不僅僅是上面這些。它可以緊跟在一個函數名后面,該函數將被調用來處理這個模板字符串。這被稱為“標簽模板”功能(tagged template)。
13. String.raw()方法,往往用來充當模板字符串的處理函數,返回一個斜杠都被轉義(即斜杠前面再加一個斜杠)的字符串,對應於替換變量后的模板字符串。
14. 模板字符串的限制 前面提到標簽模板里面,可以內嵌其他語言。但是,模板字符串默認會將字符串轉義,導致無法嵌入其他語言。