最新的Web開發教程
 

JavaScript字符串


JavaScript的字符串被用於存儲和操作的文本。


JavaScript的字符串

一個JavaScript字符串只存儲一個系列一樣的人物"John Doe"

一個字符串可以是引號內的任何文本。 您可以使用單或雙引號:

var carname = "Volvo XC60";
var carname = 'Volvo XC60';
試一試»

您可以使用引號的字符串裡面,只要它們不匹配周圍的字符串引號:

var answer = "It's alright";
var answer = "He is called 'Johnny'";
var answer = 'He is called "Johnny"';
試一試»

字符串長度

字符串的長度在內置在屬性長度是發現:

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;
試一試»

特殊字符

因為字符串必須引號內寫的,JavaScript的會誤解這個字符串:

var y = "We are the so-called "Vikings" from the north."

字符串將被切碎以"We are the so-called "

避免這個問題的解決方案,是使用\轉義字符

反斜杠轉義字符變成特殊字符轉換成字符串中的字符:

var x = 'It\'s alright';
var y = "We are the so-called \"Vikings\" from the north."
試一試»

轉義字符(\)也可以用來在一個串中插入其他特殊字符。

這是指可以加入的文本串與反斜線符號特殊字符列表:

輸出
\' 單引號
\" 雙引號
\\ 反斜線
\n 新隊
\r 回車
\t 標籤
\b 退格
\f

打破龍行代碼

為了獲得最佳的可讀性,程序員往往喜歡以避免代碼行數超過80個字符。

如果一個JavaScript語句不適合在一行,打破它是運營商後最好的地方:

document.getElementById("demo").innerHTML =
"Hello Dolly.";
試一試»

您也可以分手的文本字符串用一個反斜杠的代碼行:

document.getElementById("demo").innerHTML = "Hello \
Dolly!";
試一試»

所述\方法不是ECMAScript (JavaScript)標準。
有些瀏覽器不允許在後面的空間\字符。

最安全的(但慢一點)的方式,打破了長字符串是用另外的字符串:

document.getElementById("demo").innerHTML = "Hello" +
"Dolly!";
試一試»

你不能打破一個反斜杠代碼行:

document.getElementById("demo").innerHTML = \
"Hello Dolly!";
試一試»

字符串可以是對象

通常情況下,JavaScript的字符串是基本值,從字面創建: var firstName = "John"

但串也可以定義為與關鍵字新對象: var firstName = new String("John")

var x = "John";
var y = new String("John");

// typeof x will return string
// typeof y will return object
試一試»

不要創建字符串作為對象。 它會減慢執行速度。
new關鍵字代碼複雜化。 這可能會產生一些意想不到的結果:

當使用==等於運算符,等於字符串看起來平等的:

var x = "John";             
var y = new String("John");

// (x == y) is true because x and y have equal values
試一試»

當使用===等於運算符,等於字符串不相等的,因為===運營商期望在這兩個類型和值相等。

var x = "John";             
var y = new String("John");

// (x === y) is false because x and y have different types (string and object)
試一試»

或者更糟。 對象不能比擬的:

var x = new String("John");             
var y = new String("John");

// (x == y) is false because x and y are different objects
// (x == x) is true because both are the same object
試一試»

JavaScript對象所不能比擬的。

自測練習用!

練習1» 練習2» 練習3» 練習4»