簡體   English   中英

我們可以在模板文字(模板字符串)中使用 JS concat() 嗎?

[英]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。

如果不是,為什么? 只是好奇。

給你兩個答案:

  1. 替換 ( ${...} ) 的內容可以是任何表達式。 可以在那里進行方法調用。

  2. 在這種特殊情況下, 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM