JavaScript String (字串)

在 JavaScript 字串是用單引號 ' 或雙引號 " 包住的字。

用單引號 ' 或雙引號 " 都是一樣的,沒有特別。

例如:

var str = 'string text';
var str = "string text";
var str = "中文 español deutsch English हिन्दी العربية português বাংলা русский 日本語 ਪੰਜਾਬੀ 한국어 தமிழ் עברית";

特殊字元 (Special Characters)

因為字串必須包在單引號或雙引號裡面,但是要特別注意的雙引號裡面不能有雙引號、單引號裡面不能有單引號。

例如下面這些都會發生錯誤:

var str = 'Mike's pet.';
var str = "This is a "book".";

你可以改成這樣就會正確,因為雙引號裡面可以有單引號,或單引號裡面可以有雙引號:

var str = "Mike's pet.";
var str = 'This is a "book".';

或是使用跳脫字元 (escape character) 反斜線 (backslash) \,來跳脫引號:

// Mike's pet.
var str = 'Mike\'s pet.';
// This is a "book".
var str = "This is a \"book\".";

跳脫字元 \ 可以用來跳脫這些特殊字元:

特殊符號表示的符號
\0NULL 字元
\'單引號
\"雙引號
\反斜線
\n換行符號
\rcarriage return 回車鍵
\ttab
\vvertical tab
\bbackspace
\fform feed
\uXXXXunicode codepoint

字串相加 (String Concatenation)

我們可以用 ++= 運算子來將多個字串接起來變成一個。

用法例如:

var str = 'hel' + 'lo';
// 輸出 'hello'
console.log(str);

var name = 'Mike';
var str2 = str + ' ' + name;
// 輸出 'hello Mike'
console.log(str2);

// str2 += '!' 意思同 str2 = str2 + '!'
str2 += '!';
// 輸出 'hello Mike!'
console.log(str2);

多行字串 / 換行

有時候會遇到有非常長的字串讓你難以閱讀,例如:

var longString = 'This is a very long string which needs to wrap across multiple lines because otherwise my code is unreadable.';

但你可以用字串相加的技巧,讓你的字串更好閱讀:

var longString = 'This is a very long string which needs ' +
                 'to wrap across multiple lines because ' +
                 'otherwise my code is unreadable.';

或是可以在字串最後面加上反斜線 \ 表示字串會從下一行接續下去:

var longString = 'This is a very long string which needs \
to wrap across multiple lines because \
otherwise my code is unreadable.';

\ 後面除了換行符號,不能再有任何字元包含空白。

上面三種字串寫法都會得到一樣的字串結果喔!

String() 函數 - 型別轉換

數字轉字串

String(123) // '123'
String(100 + 23) // '123'

var x = 123;
String(x) // '123'

布林值轉字串

String(true) // 'true'
String(false) // 'false'

字串相等

我們可以用 ===== 運算子來判斷兩個字串是否相等:

var str = 'hello world';
// 會輸出 'equal'
if (str === 'hello world') {
    console.log('eqaul');
}

字串比對會逐字元比較,看兩個字串是否完全一樣。

相對的,我們可以用 !==!= 運算子來判斷兩個字串是否不相等:

var str = 'hello world';
// 會輸出 'not equal'
if (str !== 'hello Mars') {
    console.log('not eqaul');
}

String 物件內建的屬性 (Properties)

String 物件內建的方法 (Methods)