獲取字符串的某一單個字符有兩種方法。數組
第一種是使用 charAt
方法code
> 'hello'.charAt(1) 'e'
第二種是使用 類數組的下標索引 方法對象
> 'hello'[1] 'e'
下面來具體說說每一種訪問方法。索引
charAt()
方法返回字符串中指定位置的字符。字符串
語法string
str.charAt(index)
參數
index: 0
到 字符串長度-1
的一個整數。兼容性
說明
字符串中的字符從左向右索引,第一個字符的索引值爲 0
,最後一個字符的索引值爲 str.length - 1
。
若是指定的 index
值超出了該範圍,則返回一個空字符串
。語法
示例方法
> a = 'abcd' 'abcd' > a.charAt(4) // index超出範圍,返回一個空字符串 '' > a.charAt(0) 'a'
由於字符串有length
屬性,並有可索引的屬性0、一、2...
等,因此可視爲一個類數組對象。
類數組的下標索引方法 就是把字符串看成一個類數組對象(ECMA5),其中的每一個字符對應一個數值索引。兼容
語法
string[index]
注意,當index
查出範圍時,返回undefined
.
示例
> a = 'abcd' 'abcd' > a[0] 'a' > a[1] 'b' > a[2] 'c' > a[3] 'd' > a[4] //index超出範圍,返回undefined. undefined
注意,使用這種類數組的下標索引法,只能夠訪問字符而不能夠對其進行刪除或添加,由於對應屬性並非可讀或可寫的,畢竟類數組不是數組。
都是獲取字符串某個位置的單個字符。
索引都從0
開始。
使用charAt(index)
的方式,index
超出範圍的,會返回一個空的字符串
。
使用string[index]
的方式,index
超出範圍的,會返回undefined
。
可歸納爲兼容性問題。charAt
是ES3
的方法,string[index]
是ES5
的方法。因此charAt(index)
兼容性強,在IE6~8下也能正常使用。string[index]
的方式在IE6~8下會返回 undefined
, 也就是IE6~8 不兼容此方法,只能用於IE8+。
用string[index]
還有一個不便之處,即不容易區分訪問的是數組元素仍是字符串,並且有可能讓人誤覺得是可寫的。