[英]Can we use JS concat() inside Template literals (Template strings)?
我正在嘗試使用模板字符串創建一個 URL,例如 -
a = {
link: {
pathname: `${url.split('?')[0]}${userId}/items?userType=${userId}}`
},
};
上面的代碼片段工作得非常好,下面的代碼片段也是如此。 但是我們是否應該在模板字符串中使用 concat() 像下面的代碼片段一樣?
a = {
link: {
pathname: `${url
.split('?')[0]
.concat(`${userId}/items?userType=${userId}`)}`,
},
};
為什么我使用 concat() 是因為在我的情況下,我啟用的 linting 設置會拋出第一個錯誤,因為它應該寫成兩行,但它需要一個新的行或空格,這在我們的情況下是不利的案例,因為我們正在創建 URL。
如果不是,為什么? 只是好奇。
給你兩個答案:
替換 ( ${...}
) 的內容可以是任何表達式。 可以在那里進行方法調用。
在這種特殊情況下, concat
似乎是一個奇怪的選擇,因為不需要它。 出於這個原因,從風格的角度來看,我會使用第一個版本。 但這是一種風格,如果您願意,可以使用concat
。 請注意VLAZ 的觀點,一旦你這樣做了,整個表達式就已經產生了你想要的字符串,你根本不需要模板文字。
所以我要么使用你的原件:
a = {
link: {
pathname: `${url.split('?')[0]}${userId}/items?userType=${userId}}`
},
};
或者如果您更喜歡concat
:
a = {
link: {
pathname: url
.split('?')[0]
.concat(`${userId}/items?userType=${userId}`)},
},
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.