字串
在 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 屬性來獲取字串的長度(即字元數)。
2.2 字元訪問
你可以使用方括號語法([])或 .charAt() 方法來訪問字串中的單個字元。
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() 方法用於提取字串的一部分,並返回一個新字串。
3.3 substring() 和 substr()
substring(start, end)方法與slice()類似,但不接受負值索引。substr(start, length)用於從指定位置開始提取指定長度的字串。
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() 方法用於去除字串開頭和結尾的空白字元。
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)。
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 中非常重要且常用的資料型態。通過使用各種內建方法,你可以輕鬆地操作和處理字串,無論是查找、切片、替換,還是格式化文本。熟悉這些操作方法對於處理文本資料、生成動態內容、或與使用者進行互動都非常有幫助。