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