iT邦幫忙

2025 iThome 鐵人賽

DAY 14
0

除了數字之外,另一個最常用的資料型別就是 字串 (String)
字串可以想像成「一連串文字的集合」,用來表示人名、訊息、文章內容等。

基本使用

字串可以用 單引號雙引號 包起來:

var str1 = "This is a string.";
var str2 = 'This is also a string.';

字串之間可以透過 + 來串接(concatenation):

var hello = "Hello";
var js = "JavaScript";
console.log(hello + " " + js); // Hello JavaScript

字串模板(Template Literal)

ES6 之後,JavaScript 提供了 反引號 ``${} 語法,可以更方便地插入變數:

var name = "Spark";
var intro = `Hello, my name is ${name}, nice to meet you.`;
console.log(intro); // Hello, my name is Spark, nice to meet you.

型別轉換

如果想把其他型別轉成字串,可以用 String() 或強制轉換:

var age = 18;
console.log(String(age)); // "18"
console.log(age + "");    // "18"

數字與字串混用時,+ 會被當成字串串接:

let x = 10;
let y = "10";
console.log(x + y); // "1010"

特殊字元

字串中可以透過跳脫字元 \ 來表示特殊符號,例如換行:

console.log("Kenneth\nLai");

輸出結果:

Kenneth
Lai

屬性與方法(Attribute & Method)

屬性(Attribute)

  • .length:回傳字串長度。
let str = "Wilson";
console.log(str.length); // 6

方法(Method)

  • slice(start, end):擷取子字串(不包含 end)。
  • indexOf(substring):回傳子字串位置,找不到回傳 1
  • toUpperCase() / toLowerCase():轉換大小寫。
  • split(pattern):把字串拆成陣列。
  • startsWith() / endsWith():檢查字串是否以某內容開頭或結尾。
  • includes():檢查字串是否包含特定內容。
  • charCodeAt(n):取得字元的 Unicode 編碼。
let sentence = "Today is a good day";

console.log(sentence.slice(2, 6));     // "day "
console.log(sentence.indexOf("good")); // 9
console.log(sentence.toUpperCase());   // "TODAY IS A GOOD DAY"
console.log(sentence.split(" "));      // ["Today","is","a","good","day"]
console.log(sentence.startsWith("Today")); // true
console.log(sentence.includes("bad"));     // false

字串運算陷阱

  • 兩個字串不能直接用 / 等數學運算,否則會回傳 NaN
  • 進行數字與字串相加時,會自動轉成字串串接。
console.log("3" - "1"); // 2 (字串會被轉成數字)
console.log("3" + "1"); // "31"

參考資料


上一篇
Day13|數字(Number)
系列文
程式小白的 30 天轉職挑戰14
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言