---
# System prepended metadata

title: 【Day5】字串string、轉義字符
tags: [JavaScript, 14th鐵人賽]

---

# 【Day5】字串string、轉義字符
###### tags: `JavaScript` `14th鐵人賽`
本篇文章將會介紹JavaScript字串

- 字串是什麼，如何使用
- 字串連接、索引、取區間中的值……等語法
- 樣板字面值
- 轉義字符

---

## 字串 string

當你再JavaScript輸入文字時不同於數字直接輸入，字串需要以一組`' '`(單引號)，`" "`(雙引號)包住，而在輸入時需保持一致、不可混用，若混用時將會收到錯誤訊息。

```jsx
console.log('我是使用單引號的字串'); // 我是使用單引號的字串
```

```jsx
console.log("我是使用雙引號的字串"); // 我是使用雙引號的字串
```

若單雙引號混用則會收到錯誤的訊息

```jsx
console.log('我單雙引號混用"); // 錯誤
```

### 字串連接

若在JavaScript中要將字串連接非常簡單，可以透過+的字符連接字串。

```jsx
"我"+"想要"+"睡覺" // 我想要睡覺
```

再透過一個比較來看看了解字串連接:

```jsx
"我今年 + 5*1"+"歲" // 我今年 + 5*1歲
```

```jsx
"我今年" + 5*1 + "歲" // 我今年5歲
```

從上面的敘述方式可以發現只要是在引號中的內容皆會被視為字串，即便輸入數字也不會進行運算。

若在這邊加上變量

```jsx
let name = "小狗";
let doSomething = "睡覺";
name + "想要" + doSomething + 10 + "分鐘" // 小狗想要睡覺10分鐘
```

### 字串索引

在輸入一大串字串並想索引單個字符時該如何使用呢?假設輸入一個字串”今天颱風天停班，我要睡一整天”想要取他的第5個字，我們就可以透過索引的方式呈現

```jsx
let today = "今天颱風天停班，我要睡一整天";
today[5]; // 停
```

這邊可以發現輸入5卻索引到第6個字”停”，這是因為JavaScript在計算時是從0開始做計算因此第0位字為"今”以此類推，變可得出第5位值。

簡單介紹幾種可以用在字串的屬性如下

### 區間內的值

使用`.substring`(起始,結束)

```jsx
let today = "今天颱風天停班，我要睡一整天";
today.substring(0,7) // 今天颱風天停班
```

最後回返的值就會式0~7之間的6個字

### 計算長度

需要計算字串內容長度時，可以使用.length的語法

```jsx
let today = "今天颱風天停班，我要睡一整天";
today.length // 14
```

### 移除空白

```jsx
let today = "   今天颱風天停班，我要睡一整天";
today.trim() // 今天颱風天停班，我要睡一整天
```

其他補充：

```jsx
.toUpperCase //大寫
.toLowerCase //小寫
.charAt(數字x) //回傳字串第x個字
.indexOf("字元") //回傳字元序位
```

### 樣板字面值

在ES6中有更新「樣板字面值」寫法可以省去許多加號

```jsx
let name = "小狗";
let age = 18;
//let content = "哈囉我是"+name+"，我今年"+age+"歲";
let content = `哈囉我是${name}，我今年${age}歲`; // 使用反引號 於變數時使用${ }
console.log(content) //哈囉我是小狗，我今年18歲
```

## 轉義字符

若在字串中需使用引號時，該怎麼辦呢?若直接加上引號會發生錯誤的情況，因此可使用轉義字符，讓引號順利呈現。

```jsx
"我想要點一個,"麥脆雞套餐"" // 錯誤
"我想要點一個, \"麥脆雞套餐\"" // 我想要點一個, "麥脆雞套餐"
```

| 代碼 | 輸入 |
| --- | --- |
| \\ | \（反斜杠） |
| \" | ''（雙引號） |
| \' | '（單引號） |
| \n | 換行 |
| \t | 制表 |

我是一個剛開始學習JS的小白，若有問題歡迎指教討論唷~~(=^-ω-^=)