【javascript系列】字符串:字符串單個字符訪問

訪問字符串的單個字符

獲取字符串的某一單個字符有兩種方法。數組

第一種是使用 charAt 方法code

> 'hello'.charAt(1)
'e'

第二種是使用 類數組的下標索引 方法對象

> 'hello'[1]
'e'

下面來具體說說每一種訪問方法。索引

charAt 方法

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

注意,使用這種類數組的下標索引法,只能夠訪問字符而不能夠對其進行刪除或添加,由於對應屬性並非可讀或可寫的,畢竟類數組不是數組。

兩種方法的比較

相同點

  1. 都是獲取字符串某個位置的單個字符。

  2. 索引都從0開始。

不一樣點

  1. 使用charAt(index)的方式,index超出範圍的,會返回一個空的字符串
    使用string[index]的方式,index超出範圍的,會返回undefined

  2. 可歸納爲兼容性問題。
    charAtES3的方法,string[index]ES5的方法。因此charAt(index)兼容性強,在IE6~8下也能正常使用。string[index]的方式在IE6~8下會返回 undefined, 也就是IE6~8 不兼容此方法,只能用於IE8+。

  3. string[index]還有一個不便之處,即不容易區分訪問的是數組元素仍是字符串,並且有可能讓人誤覺得是可寫的。

相關文章
相關標籤/搜索