JavaScript中的字元串和數組都是類數組(類數組就是包含有length屬性,常見的是函數中的arguments的對象以及DOM方法傳回的結果)。
一、與數組的相似點
兩者也有很多相似的地方,兩者都有length屬性以及indexOf()和concat()方法。
二、與數組的不同點
在js中,字元串是不可變的(可參考 連結描述 ),而數組是可變的。解釋如下:
let arr = [1, 2, 3];
arr[1] = 4; // 此時arr = [1, 4, 3]
let str = 'string';
str[1] = 'q'; // 此時雖然不會報錯,但str還是為'string';就算使用了.charAt(1)也無效,還會報錯
綜上,字元串不可變的意思是,字元串的成員函數不會改變其原始值,而是建立并傳回一個新的字元串;相比較數組,數組的成員函數都是在其原始值上進行操作。
字元串和數組還有一個不同點,在于反轉函數。數組有一個可變更成員函數reverse(),而字元串則沒有,因為字元串是不可變的。
想要字元串進行反轉,需要分為以下三步:
1、将字元串變為字元數組;
2、将數組中的字元進行倒轉;
3、将數組中的字元拼接回字元串
過程如下:
let str = 'string';
let nweStr = str.split('').reverse().join(''); // 先拆分,接着逆序,最後拼接,得到的字元串就是'gnirts'
字元串的内容就到此結束。