1. 程式人生 > >字串模版標籤用法

字串模版標籤用法

{
    /**
    * 字串標籤模版
    * @arg {Array} literals - 被字元變數打散的字串
    * @arg {Array} substitutions - 對應每個替換的變數值
    * @return {String} 新的字串
    */
    const repeat = function(literals, ...substitutions) {
        console.log(`literals: ${literals.length}`)
        console.log(`substitutions: ${substitutions.length}`)
        
/** * 注意listerals[0] * 在這個例子裡面是'',即為空字串, * 意思是literals.length永遠比substitutions.length長1 * 即 substitutions.length + 1 === literals.length * 前題是literals與substitutions都存在的情況 */ return literals.reduce(( prev, next, index, arr ) => { const substitution
= substitutions[index - 1]; return prev + ( substitution ? (substitution + ' ').repeat(2) : '') + next.repeat(2); }, '') } const say = `say` const world = `world`; const str = repeat`${say}hello ${world}!` console.log(str) }

這裡需要注意的是無論${ variable }是在開頭還是結尾,literals都會設定一個預設的空字元''