ES5字符串方法
1. String.fromCharCode() 該方法的參數是一系列Unicode碼點,返回對應的字符串。
2. charAt() 該方法返回指定位置的字符,參數是從0開始編號的位置。
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. 模板字符串的限制 前面提到標簽模板里面,可以內嵌其他語言。但是,模板字符串默認會將字符串轉義,導致無法嵌入其他語言。
