1. 程式人生 > >javascript型別系統——字串String型別

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對應的字元"