iT邦幫忙

2022 iThome 鐵人賽

DAY 9
0
自我挑戰組

30天JavaScript自學挑戰系列 第 9

Day 9 字串及模板字串(template literals)

  • 分享至 

  • xImage
  •  

前面我們提到了加號運算子除了可以加總不同的值之外,也可以用來連接字串,例如:

const catName = "Luna";
const birthYear = 2019;
const color = "black";
const year = 2022;

const catInfo = catName + " is a " + (year - birthYear) + " years old " + color + " cat.";
console.log(catInfo);
// Luna is a 3 years old black cat.

但這個方式使用起來會有一些不方便的地方,像是要非常注意引號裡面是否有將空格加入在它應該出現的位置,否則就會變成一大串連在一起的字母,如稍不注意,可能會變成這樣:Lunais a3years oldblackcat。

還有一種情形是當句子中間出現單引號,像是Amy’s這樣的情形時,需特別注意單引號及雙引號的使用,舉例來說,”Amy’s cat”是ok的,但’Amy’s cat’就不行。

這時候我們可以使用模板字串(template literals),這是從ES6開始被引入的工具,這讓我們可以用一種更普通、更容易的方式編寫字串,然後將變數直接插入到字串當中,最後將它們組裝成一串文字。

撰寫的方式是使用反引號及${ },要插入在句子中的變數就放在${ }裡面,${ }裡面也可以做值的運算,例如:

const catName = "Luna";
const birthYear = 2019;
const color = "black";
const year = 2022;

const catInfo = `${catName} is a ${year - birthYear} years old ${color} cat.`;
console.log(catInfo);
// Luna is a 3 years old black cat.

這樣的語法撰寫起來比較容易,因為它更貼近我們日常生活中的書寫方式。

反引號可以使用於任何的字串,因此許多人開始會在字串上使用反引號取代雙引號或單引號,因為這樣就無須煩惱該使用哪一種引號了。

模板字串另一個好用的地方是創造多行字串,在模板字串被引入前,如果要撰寫像下列的多行字串時
Line one
Line two
Line three
需要使用\n\來分行,

console.log("Line one \n\
Line two \n\
Line three");

而模板字串讓撰寫多行字串變得簡單多了:

console.log(`Line one
Line two
Line three`);

上一篇
Day 8 基本的運算子
下一篇
Day 10 if / else 陳述式
系列文
30天JavaScript自學挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言