javascript 字符串
javascript 字符串用于存儲和操作文本。
1. javascript 字符串
javascript 字符串是引號中的零個或多個字符。
范例
var x = "bill gates"
您能夠使用單引號或雙引號:
范例
var carname = "porsche 911"; var carname = 'porsche 911';
您可以在字符串中使用引號,只要不匹配圍繞字符串的引號即可:
范例
var answer = "it's good to see you again!"; var answer = "he is called 'bill'"; var answer = 'he is called "bill"';
2. 字符串長度
內建屬性 length 可返回字符串的長度:
范例
var txt = "abcdefghijklmnopqrstuvwxyz"; var sln = txt.length;
3. 特殊字符
由于字符串必須由引號包圍,javascript 會誤解這段字符串:
var y = "中國是瓷器的故鄉,因此 china 與"china(中國)"同名。"
該字符串將被切為 "中國是瓷器的故鄉,因此 china 與"。
避免此問題的解決方法是,使用 \ 轉義字符。
反斜杠轉義字符把特殊字符轉換為字符串字符:
代碼 | 結果 | 描述 |
---|---|---|
\' | ' | 單引號 |
\" | " | 雙引號 |
\\ | \ | 反斜杠 |
范例
序列 \" 在字符串中插入雙引號:
范例
var x = "中國是瓷器的故鄉,因此 china 與\"china(中國)\"同名。"
序列 \' 在字符串中插入單引號:
范例
var x = 'it\'s good to see you again';
序列 \\ 在字符串中插入反斜杠:
范例
var x = "字符 \\ 被稱為反斜杠。";
轉義字符(\)也可用于在字符串中插入其他特殊字符。
其他六個 javascript 中有效的轉義序列:
代碼 | 結果 |
---|---|
\b | 退格鍵 |
\f | 換頁 |
\n | 新行 |
\r | 回車 |
\t | 水平制表符 |
\v | 垂直制表符 |
這六個轉義字符最初設計用于控制打字機、電傳打字機和傳真機。它們在 html 中沒有任何意義。
4. 長代碼行換行
為了最佳可讀性, 程序員們通常會避免每行代碼超過 80 個字符串。
如果某條 javascript 語句不適合一整行,那么最佳換行位置是某個運算符之后:
范例
document.getelementbyid("demo").innerhtml = "hello kitty.";
您也可以在字符串中換行,通過一個反斜杠即可:
范例
document.getelementbyid("demo").innerhtml = "hello \ kitty!";
\ 方法并不是 ecmascript (javascript) 標準。
某些瀏覽器也不允許 \ 字符之后的空格。
對長字符串換行的最安全做法(但是有點慢)是使用字符串加法:
范例
document.getelementbyid("demo").innerhtml = "hello" + "kitty!";
您不能通過反斜杠對代碼行進行換行:
范例
document.getelementbyid("demo").innerhtml = \ "hello kitty!";
5. 字符串可以是對象
通常,javascript 字符串是原始值,通過字面方式創建:
var firstname = "bill"
但是字符串也可通過關鍵詞 new 定義為對象:
var firstname = new string("bill")
范例
var x = "bill"; var y = new string("bill"); // typeof x 將返回 string // typeof y 將返回 object
請不要把字符串創建為對象。它會拖慢執行速度。
new 關鍵字使代碼復雜化。也可能產生一些意想不到的結果:
當使用 == 相等運算符時,相等字符串是相等的:
范例
var x = "bill";
var y = new string("bill");
// (x == y) 為 true,因為 x 和 y 的值相等
當使用 === 運算符時,相等字符串是不相等的,因為 === 運算符需要類型和值同時相等。
范例
var x = "bill";
var y = new string("bill");
// (x === y) 為 false,因為 x 和 y 的類型不同(字符串與對象)
甚至更糟。對象無法比較:
范例
var x = new string("bill");
var y = new string("bill");
// (x == y) 為 false,因為 x 和 y 是不同的對象
范例
var x = new string("bill");
var y = new string("bill");
// (x === y) 為 false,因為 x 和 y 是不同的對象
請注意 (x==y) 與 (x===y) 的區別。
javascript 對象無法進行對比,比較兩個 javascript 將始終返回 false。