3.4 數(shù)據(jù)類型 33
1
2
3
4
5
13
6
7
8
9
10
11
12
也必須以雙引號結尾,而以單引號開頭的字符串必須以單引號結尾。例如,下面這種字符串表示法會導
致語法錯誤:
var firstName = 'Nicholas\"; // 語法錯誤(左右引號必須匹配)
1. 字符字面量
String 數(shù)據(jù)類型包含一些特殊的字符字面量,也叫轉(zhuǎn)義序列,用于表示非打印字符,或者具有其
他用途的字符。這些字符字面量如下表所示:
字 面 量 含 義
\
換行
\\t 制表
\\b 空格
\
回車
\\f 進紙
\\\\ 斜杠
\\' 單引號('),在用單引號表示的字符串中使用。例如:'He said, \\'hey.\\''
\\\" 雙引號(\"),在用雙引號表示的字符串中使用。例如:\"He said, \\\"hey.\\\"\"
\\xnn 以十六進制代碼nn表示的一個字符(其中n為0~F)。例如,\\x41表示\"A\"
\\unnnn 以十六進制代碼nnnn表示的一個Unicode字符(其中n為0~F)。例如,\Σ表示希臘字符Σ
這些字符字面量可以出現(xiàn)在字符串中的任意位置,而且也將被作為一個字符來解析,如下面的例子
所示:
var text = \"This is the letter sigma: \Σ.\";
這個例子中的變量 text 有 28 個字符,其中 6 個字符長的轉(zhuǎn)義序列表示 1 個字符。
任何字符串的長度都可以通過訪問其 length 屬性取得,例如:
alert(text.length); // 輸出 28
這個屬性返回的字符數(shù)包括 16 位字符的數(shù)目。如果字符串中包含雙字節(jié)字符,那么 length 屬性
可能不會精確地返回字符串中的字符數(shù)目。
2. 字符串的特點
ECMAScript 中的字符串是不可變的,也就是說,字符串一旦創(chuàng)建,它們的值就不能改變。要改變
某個變量保存的字符串,首先要銷毀原來的字符串,然后再用另一個包含新值的字符串填充該變量,
例如:
var lang = \"Java\";
lang = lang + \"Script\";
以上示例中的變量 lang 開始時包含字符串\"Java\"。而第二行代碼把 lang 的值重新定義為\"Java\"
與\"Script\"的組合,即\"JavaScript\"。實現(xiàn)這個操作的過程如下:首先創(chuàng)建一個能容納 10 個字符的
新字符串,然后在這個字符串中填充\"Java\"和\"Script\",最后一步是銷毀原來的字符串\"Java\"和字
符串\"Script\",因為這兩個字符串已經(jīng)沒用了。這個過程是在后臺發(fā)生的,而這也是在某些舊版本的
圖靈社區(qū)會員 StinkBC(StinkBC@gmail.com) 專享 尊重版權