Skip to content

字串

在 JavaScript 中,字串(String)是一種用來表示文本的資料型態。字串是不可變的,這意味著一旦創建,字串的內容就不能被更改。JavaScript 提供了豐富的方法來操作字串,讓開發者可以方便地處理文本資料。以下是字串的基本使用方式及其常見操作的詳細說明。

1. 創建字串

在 JavaScript 中,你可以使用單引號 (')、雙引號 (")、或反引號(`)來創建字串。

let singleQuoteString = 'Hello, World!';
let doubleQuoteString = "Hello, World!";
let templateString = `Hello, World!`;

1.1 模板字串(Template Literals)

使用反引號(`)創建的字串稱為模板字串。它允許你在字串中嵌入變數和表達式,這在處理動態內容時非常有用。

let name = 'Alice';
let greeting = `Hello, ${name}!`;  // 使用 ${} 來嵌入變數
console.log(greeting);  // 輸出 "Hello, Alice!"

2. 字串的基本操作

2.1 字串的長度

你可以使用 .length 屬性來獲取字串的長度(即字元數)。

let str = 'JavaScript';
console.log(str.length);  // 輸出 10

2.2 字元訪問

你可以使用方括號語法([])或 .charAt() 方法來訪問字串中的單個字元。

let str = 'JavaScript';
console.log(str[0]);  // 輸出 "J"
console.log(str.charAt(0));  // 輸出 "J"

3. 字串方法

JavaScript 提供了多種內建方法來操作字串。

3.1 indexOf()lastIndexOf()

這些方法用於查找子字串在父字串中的位置。

let str = 'Hello, world!';
console.log(str.indexOf('world'));  // 輸出 7
console.log(str.lastIndexOf('o'));  // 輸出 8
  • indexOf() 返回子字串在字串中第一次出現的位置。
  • lastIndexOf() 返回子字串在字串中最後一次出現的位置。

如果沒有找到,這些方法會返回 -1

3.2 slice()

slice() 方法用於提取字串的一部分,並返回一個新字串。

let str = 'JavaScript';
let part = str.slice(0, 4);
console.log(part);  // 輸出 "Java"
* 第一個參數是起始索引,第二個參數是結束索引(不包含在提取結果中)。

3.3 substring()substr()

  • substring(start, end) 方法與 slice() 類似,但不接受負值索引。
  • substr(start, length) 用於從指定位置開始提取指定長度的字串。
    let str = 'JavaScript';
    console.log(str.substring(4, 10));  // 輸出 "Script"
    console.log(str.substr(4, 6));      // 輸出 "Script"
    

3.4 replace()

replace() 方法用於替換字串中的部分內容。

let str = 'Hello, world!';
let newStr = str.replace('world', 'JavaScript');
console.log(newStr);  // 輸出 "Hello, JavaScript!"

  • 第一個參數是要替換的子字串,第二個參數是替換的新字串。

3.5 toUpperCase()toLowerCase()

這些方法用於將字串轉換為大寫或小寫。

let str = 'JavaScript';
console.log(str.toUpperCase());  // 輸出 "JAVASCRIPT"
console.log(str.toLowerCase());  // 輸出 "javascript"

3.6 trim()

trim() 方法用於去除字串開頭和結尾的空白字元。

let str = '  Hello, world!  ';
console.log(str.trim());  // 輸出 "Hello, world!"

4. 模板字串的進階用法

模板字串(Template Literals)不僅可以嵌入變數,還可以嵌入運算式和多行字串。

4.1 嵌入運算式

let a = 5;
let b = 10;
console.log(`The sum of ${a} and ${b} is ${a + b}.`);  // 輸出 "The sum of 5 and 10 is 15."

4.2 多行字串

模板字串允許你輕鬆地創建多行字串,而不需要使用換行符號(\n)。

let multiLineStr = `This is a
multi-line
string.`;
console.log(multiLineStr);

5. 字串與陣列的轉換

5.1 字串轉換為陣列

你可以使用 split() 方法將字串拆分為陣列。

let str = 'apple,banana,cherry';
let arr = str.split(',');
console.log(arr);  // 輸出 ["apple", "banana", "cherry"]
* split() 方法根據指定的分隔符將字串拆分成多個部分。

5.2 陣列轉換為字串

你可以使用 join() 方法將陣列合併為字串。

let arr = ['apple', 'banana', 'cherry'];
let str = arr.join(', ');
console.log(str);  // 輸出 "apple, banana, cherry"

6. 字串的不可變性

字串在 JavaScript 中是不可變的,這意味著一旦創建,字串的內容不能直接修改。當你對字串進行操作(例如替換或切片)時,會創建並返回一個新的字串,而不是修改原始字串。

let str = 'Hello';
str[0] = 'J';  // 嘗試修改字串
console.log(str);  // 輸出 "Hello"(原字串未改變)

let newStr = str.replace('H', 'J');
console.log(newStr);  // 輸出 "Jello"

總結

字串是 JavaScript 中非常重要且常用的資料型態。通過使用各種內建方法,你可以輕鬆地操作和處理字串,無論是查找、切片、替換,還是格式化文本。熟悉這些操作方法對於處理文本資料、生成動態內容、或與使用者進行互動都非常有幫助。