資源描述:
《javascript類型系統(tǒng)之string字符串類型詳解_javascript技巧》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、Javascript類型系統(tǒng)之String字符串類型詳解javascript沒有表示單個(gè)字符的字符型,只有字符串String類型,字符型相當(dāng)于僅包含一個(gè)字符的字符串字符串String是javascript基本數(shù)據(jù)類型,同時(shí)javascript也支持String對彖,它是一個(gè)原始值的包裝對彖。在需要時(shí),javascript會(huì)自動(dòng)在原始形式和對象形式之間轉(zhuǎn)換。木文將介紹字符串String原始類型及String包裝對象定義字符串String類型是由引號(hào)括起來的一組由16位Unicode字符組成的字符序列字符串類型常被用于表示文本數(shù)據(jù),此時(shí)字符
2、串中的每個(gè)元素都被視為一個(gè)代碼點(diǎn)。每個(gè)元素都被認(rèn)為占有此序列屮的一個(gè)位置,用非負(fù)數(shù)值索引這些位置。首字符從位置0開始,第二個(gè)字符在位置1,依次類推字符串的長度即其中元素的個(gè)數(shù)(比如,16位值)??兆址L度為零,因而不包含任何元素Unicode編碼所有字符都可以寫成'uxxxx'的形式,其屮xxxx代表該字符的Unicode編碼。比如,u00A9代表版權(quán)符號(hào)vars='u00A9';s//〃?〃若一個(gè)字符串包含實(shí)際的文木數(shù)據(jù),每個(gè)元素都被認(rèn)為是一個(gè)單獨(dú)的UTF-16單元。每個(gè)字符在JavaScript內(nèi)部都是以16位(即2個(gè)字節(jié))
3、的UTF-16格式儲(chǔ)存但UTF-16有兩種長度:對于U+0000到U+FFFF之間的字符,長度為16位(即2個(gè)字節(jié));對于U+10000到U+10FFFF之間的字符,長度為32位(即4個(gè)字節(jié)),而且前兩個(gè)字節(jié)在0xD800到OxDBFF之間,后兩個(gè)字節(jié)在OxDCOO到OxDFFF之間舉例來說,U+1D306X寸應(yīng)的字符〃〃,寫成UTF-16就是0xD8340xDF06o瀏覽器會(huì)止確將這四個(gè)字節(jié)識(shí)別為一個(gè)字符,但是javascript內(nèi)部的字符長度總是固定為16位,會(huì)把這四個(gè)字節(jié)視為兩個(gè)字符vars='uD834uDF06,;//〃〃
4、s//s.length//2對于U+10000到U+10FFFF的4字節(jié)Unicode字符,javascript總是視為兩個(gè)字符(字符length屬性為2)引號(hào)字符串String是由雙引號(hào)(〃)或單引號(hào)(')聲明的。而Java則是用雙引號(hào)聲明字符串,用單引號(hào)聲明字符。由于ECMAScript沒有字符類型,所以可使用這兩種表示法屮的任何一種,但左右引號(hào)必須匹配//正確varsColorl="red";varsColor2二'red,;〃錯(cuò)誤varsColorl="red';varsColor2='rcd〃;由單引號(hào)定界的字符串中可以包含雙
5、引號(hào),由雙引號(hào)定界的字符串也可以包含單引號(hào)>1〃1〃,key二value"It'salongjourncy"javascript代碼可能會(huì)夾雜HTML代碼的字符串,HTML代碼也會(huì)夾雜javascript代碼。因此,最好在javascript和HTML代碼中各自使用獨(dú)自的引號(hào)風(fēng)格javascript中使用單引號(hào)表示字符串,在HTML事件處理程序中使用雙引號(hào)表示字符串clickme反斜線如果想在單引號(hào)定界的字符串中使用單引號(hào),或在雙引號(hào)定界的字符串中使用雙
6、引號(hào),則需要使用反斜線()常見情況是英文縮寫和所冇格寫法的撇號(hào)和單引號(hào)是同一個(gè)字符,所以這時(shí)必須使用反斜線()來轉(zhuǎn)義撇號(hào)Wouldntyoupreferthisbook?//Wouldntyoupreferthisbook?'Didshesay'Hello、'?'//〃Didshesay'Hello'?""Didshesay〃Hello〃?〃//"Didshesay〃Hello〃?〃多行字符字符吊默認(rèn)只能寫在一行內(nèi),分成多行將會(huì)報(bào)錯(cuò)//扌艮錯(cuò)UncaughtSyntaxError:Invalidorunexpectedtok
7、enabc;在ECMAScript3中,字符串必須寫在一行中在ECMAScript5屮,字符串可以拆分成數(shù)行,每行必須以反斜線()結(jié)束如果希望在字符串直接量中另起一行,可以使用轉(zhuǎn)義字符//"onelongline"'onelongline'/*"lwolines"*/'twolines,轉(zhuǎn)義字符在javascript字符串,反斜線()有著特殊的用途,反斜線符號(hào)后加一個(gè)字符,就不表示它們的字面含義,用來表示一些特殊字符,稱為轉(zhuǎn)義字符nn表示一個(gè)字符(n為0-f),如x41表示'A'unnnn以十六進(jìn)制nnnn表示一個(gè)U
8、nicode字符(n為0-f),如u03a3表示希臘字符£如果在非特殊字符前面使用反斜杠,則反斜杠會(huì)被省略'a//如果字符串需要包含反斜杠,則反斜杠前面需要再加一個(gè)反斜杠,用來對自身轉(zhuǎn)義,zPrev\