自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在JavaScript中組合字符串的4種方法

開(kāi)發(fā) 前端
下面是在JavaScript中組合字符串的4種方法。我最喜歡的方法是使用模板字符串。為什么?因?yàn)樗呖勺x性,所以沒(méi)有轉(zhuǎn)義引號(hào)的反斜杠,沒(méi)有笨拙的空格分隔符,也沒(méi)有混亂的加號(hào)操作符 。

下面是在JavaScript中組合字符串的4種方法。我最喜歡的方法是使用模板字符串。為什么?因?yàn)樗呖勺x性,所以沒(méi)有轉(zhuǎn)義引號(hào)的反斜杠,沒(méi)有笨拙的空格分隔符,也沒(méi)有混亂的加號(hào)操作符 。

[[335927]]

  1. const icon = ''
  2.  
  3. // 模板字符串 
  4. `hi ${icon}`; 
  5.  
  6. // join() 方法 
  7. ['hi', icon].join(' '); 
  8.  
  9. // Concat() 方法 
  10. ''.concat('hi ', icon); 
  11.  
  12. // + 操作符 
  13. 'hi ' + icon; 
  14.  
  15. // RESULT 
  16. // hi  

1. 模板字符串

如果你來(lái)自另一種語(yǔ)言(例如Ruby),則將熟悉字符串插值一詞。這正是模板字符串要實(shí)現(xiàn)的目標(biāo)。這是在字符串創(chuàng)建中包含表達(dá)式的一種簡(jiǎn)單方法,該方法簡(jiǎn)潔明了。

  1. const name = 'samantha'
  2. const country = ''

(1) 字符串連接中缺少空格的問(wèn)題

在模板字符串之前,這是我的字符串的結(jié)果

  1. "Hi, I'm " + name + "and I'm from " + country; 

☝️ 你發(fā)現(xiàn)我的錯(cuò)誤了嗎?我缺少空格。在連接字符串時(shí),這是一個(gè)非常普遍的問(wèn)題。

  1. // Hi, I'm samanthaand I'm from  

(2) 用模板字符串解決

使用模板字符串,可以解決此問(wèn)題。你可以按照你想要的字符串顯示方式編寫(xiě)。所以很容易發(fā)現(xiàn)是否缺了一個(gè)空格,現(xiàn)在超級(jí)可讀,耶!

  1. `Hi, I'm ${name} and I'm from ${country}`; 

2. join()

join 方法合并數(shù)組的元素并返回一個(gè)字符串。因?yàn)樗c數(shù)組一起使用,所以如果要添加其他字符串,它非常方便。

  1. const instagram = '@samanthaming'
  2. const twitter = '@samantha_ming'
  3. const array = ['My handles are ', instagram, twitter]; 
  4.  
  5. const tiktok = '@samantaming'
  6.  
  7. array.push(tiktok); 
  8.  
  9. array.join(' '); 
  10.  
  11. // My handles are @samanthaming @samantha_ming @samanthaming 

自定義分隔符

join 的好處在于,你可以自定義組合數(shù)組元素的方式。你可以通過(guò)在其參數(shù)中傳遞分隔符來(lái)實(shí)現(xiàn)。

  1. const array = ['My handles are ']; 
  2. const handles = [instagram, twitter, tiktok].join(', ');  
  3. // @samanthaming, @samantha_ming, @samanthaming 
  4.  
  5. array.push(handles); 
  6.  
  7. array.join(''); 
  8.  
  9. // My handles are @samanthaming, @samantha_ming, @samanthaming 

3. concat()

使用 concat,可以通過(guò)在字符串上調(diào)用方法來(lái)創(chuàng)建新字符串。

  1. const instagram = '@samanthaming'
  2. const twitter = '@samantha_ming'
  3. const tiktok = '@samanthaming'
  4.  
  5. 'My handles are '.concat(instagram, ', ', twitter', ', tiktok); 
  6.  
  7. // My handles are @samanthaming, @samantha_ming, @samanthaming 

結(jié)合字符串和數(shù)組

還可以使用 concat 將字符串與數(shù)組組合在一起。當(dāng)我傳遞數(shù)組參數(shù)時(shí),它將自動(dòng)將數(shù)組項(xiàng)轉(zhuǎn)換為以逗號(hào)分隔的字符串。

  1. const array = [instagram, twitter, tiktok]; 
  2.  
  3. 'My handles are '.concat(array); 
  4.  
  5. // My handles are @samanthaming,@samantha_ming,@samanthaming 

果您希望格式更好,我們可以使用 join 來(lái)定制分隔符。

  1. const array = [instagram, twitter, tiktok].join(', '); 
  2.  
  3. 'My handles are '.concat(array); 
  4.  
  5. // My handles are @samanthaming, @samantha_ming, @samanthaming 

4. +操作符

關(guān)于在組合字符串時(shí)使用 + 運(yùn)算符的一件有趣的事情。你可以用來(lái)創(chuàng)建新的字符串,也可以通過(guò)添加現(xiàn)有字符串來(lái)對(duì)其進(jìn)行突變。

(1) 非可變

在這里,我們使用 + 創(chuàng)建一個(gè)全新的字符串。

  1. const instagram = '@samanthaming'
  2. const twitter = '@samantha_ming'
  3. const tiktok = '@samanthaming'
  4.  
  5. const newString = 'My handles are ' + instagram + twitter + tiktok; 

(2) 可變的

我們還可以使用 += 將其附加到現(xiàn)有字符串中。所以如果出于某種原因,你需要一種改變的方法,這可能是你的一個(gè)選擇。

  1. let string = 'My handles are '
  2.  
  3. string += instagram + twitter; 
  4.  
  5. // My handles are @samanthaming@samantha_ming 

哦,該死的再次忘記了空格??吹搅?連接字符串時(shí)很容易錯(cuò)過(guò)空格。

  1. string += instagram + ', ' + twitter + ', ' + tiktok; 
  2. // My handles are @samanthaming, @samantha_ming, @samanthaming 

感覺(jué)還是很亂的,我們把 join 扔進(jìn)去吧!

  1. string += [instagram, twitter, tiktok].join(', '); 
  2. // My handles are @samanthaming, @samantha_ming, @samanthaming 

5. 字符串中的轉(zhuǎn)義字符

當(dāng)字符串中包含特殊字符時(shí),組合時(shí)首先需要轉(zhuǎn)義這些字符。讓我們看一些情況,看看如何避免它們

(1) 轉(zhuǎn)義單引號(hào)或撇號(hào)(’)

創(chuàng)建字符串時(shí),可以使用單引號(hào)或雙引號(hào)。知道了這些知識(shí),當(dāng)你的字符串中出現(xiàn)單引號(hào)時(shí),一個(gè)很簡(jiǎn)單的解決方法就是用相反的方法來(lái)創(chuàng)建字符串。

  1. const happy = ; 
  2.  
  3. ["I'm ", happy].join(' '); 
  4.  
  5. ''.concat("I'm ", happy); 
  6.  
  7. "I'm " + happy; 
  8.  
  9. // RESULT 
  10. // I'm  

當(dāng)然,您也可以使用反斜杠 \ 來(lái)轉(zhuǎn)義字符。但是我發(fā)現(xiàn)它有點(diǎn)難以閱讀,所以我并不經(jīng)常這樣。

  1. const happy = ; 
  2.  
  3. ['I\'m ', happy].join(' '); 
  4.  
  5. ''.concat('I\'m ', happy); 
  6.  
  7. 'I\'m ' + happy; 
  8.  
  9. // RESULT 
  10. // I'm  

由于模板字符串正在使用反引號(hào),因此這種情況不適用于它

(2) 轉(zhuǎn)義雙引號(hào)(“)

類似于轉(zhuǎn)義單引號(hào),我們可以使用相同的方法來(lái)使用相反的引號(hào)。因此,為了轉(zhuǎn)義雙引號(hào),我們將使用單引號(hào)。

  1. const flag = ''
  2.  
  3. ['Canada "', flag, '"'].join(' '); 
  4.  
  5. ''.concat('Canada "', flag, '"'); 
  6.  
  7. 'Canada "' + flag + '"'; 
  8.  
  9. // RESULT 
  10. // Canada "" 

是的,還可以使用反斜杠轉(zhuǎn)義符。

(3) 轉(zhuǎn)義符(`)

因?yàn)槟0遄址褂梅匆?hào)創(chuàng)建其字符串,所以當(dāng)要輸出該字符時(shí),我們必須使用反斜杠對(duì)其進(jìn)行轉(zhuǎn)義。

6. 使用哪種方式?

我展示了一些使用不同方式連接字符串的示例。哪種方法更好取決于所有情況。關(guān)于樣式偏好,我喜歡遵循Airbnb風(fēng)格指南。

因此,模板字符串必勝!

7. 為什么其他方式仍然重要?

知道其他的方法也還是很重要的。為什么這么說(shuō)呢?因?yàn)椴⒉皇敲總€(gè)代碼庫(kù)都會(huì)遵循這個(gè)規(guī)則,或者你可能面對(duì)的是一個(gè)遺留代碼庫(kù)。作為一個(gè)開(kāi)發(fā)者,我們需要能夠適應(yīng)和理解我們所處的任何環(huán)境。我們是來(lái)解決問(wèn)題的,而不是抱怨技術(shù)有多老 除非這種抱怨是配合實(shí)際行動(dòng)來(lái)改善的。那我們就有進(jìn)步

 

責(zé)任編輯:趙寧寧 來(lái)源: 今日頭條
相關(guān)推薦

2020-10-16 18:35:53

JavaScript字符串正則表達(dá)式

2020-09-03 10:13:49

JavaScript字符串pad

2013-01-07 10:44:00

JavaScriptjQueryJS

2025-04-27 10:02:50

JavaScript前端開(kāi)發(fā)

2010-09-02 10:02:17

PHP

2022-09-22 11:40:11

JavaScript數(shù)組開(kāi)發(fā)

2011-07-11 15:36:44

JavaScript

2019-06-04 15:34:05

WindowsLinuxLinux命令

2020-06-23 14:51:13

JavaScript字符字符串

2018-12-19 19:30:46

JavaScript創(chuàng)建對(duì)象前端

2022-12-08 15:55:52

JavaScript字符串

2021-11-11 14:50:01

JavaScriptarry編程開(kāi)發(fā)

2011-07-11 16:00:22

字符串拼接

2020-08-17 09:22:30

字符串子串對(duì)象

2009-11-13 16:29:11

ADO.NET連接字符

2015-06-09 14:43:36

javascript操作字符串

2010-07-14 16:37:33

SQL Server拆

2023-08-25 16:37:08

Pandas測(cè)試

2019-12-12 20:03:08

PythonC語(yǔ)言編程語(yǔ)言

2024-10-28 15:33:52

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)