javascript型別系統——字串String型別
前面的話
javascript沒有表示單個字元的字元型,只有字串String型別,字元型相當於僅包含一個字元的字串
字串String是javascript基本資料型別,同時javascript也支援String物件,它是一個原始值的包裝物件。在需要時,javascript會自動在原始形式和物件形式之間轉換。本文將介紹字串String原始型別及String包裝物件
定義
字串String型別是由引號括起來的一組由16位Unicode字元組成的字元序列
字串型別常被用於表示文字資料,此時字串中的每個元素都被視為一個程式碼點。每個元素都被認為佔有此序列中的一個位置,用非負數值索引這些位置。首字元從位置0開始,第二個字元在位置1,依次類推
字串的長度即其中元素的個數。空字串長度為零,因而不包含任何元素
Unicode編碼
javascript採用UTF-16編碼的Unicode字符集,javascript字串是由一組無符號的16位值組成的序列。最常用的Unicode字元都是通過16位的內碼錶示,並代表字串中的單個字元
[注意]最常用的Unicode字元屬於“基本多語種平面”(Basic Multilingual Plane BMP),也稱為“零斷面”(plan 0), 是Unicode中的一個編碼區段,編碼介於U+0000——U+FFFF之間
所有字元都可以寫成'\uxxxx'的形式,其中xxxx代表該字元的Unicode編碼。比如,\u00A9代表版權符號
var s = '\u00A9'; s // "©"
那些不能表示為16位的Unicode字元(U+10000到U+10FFFF之間的字元,長度為32位(即4個位元組),而且前兩個位元組在0xD800到0xDBFF之間,後兩個位元組在0xDC00到0xDFFF之間),則遵循UTF-16編碼規則——用兩個16位值組成的一個序列(亦稱做“代理項對”)表示。這意味著一個長度為2的javascript字串(兩個16位值)有可能表示一個Unicode字元
舉例來說,U+1D306對應的字元"