标签模板函数

模板字符串的功能,不仅仅是上面这些。它可以紧跟在一个函数名后面,该函数将被调用来处理这个模板字符串。这被称为“标签模板”功能(tagged template)。

模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。

 1     // 标签模板函数
 2      function passthru(strings){
 3             var result = '';
 4             var i = 0;
 5             while(i < strings.length){
 6                 result += strings[i++];
 7                 if(i < arguments.length){
 8                     result += arguments[i];
 9                 }
10             }
11             return result;
12     }
13     var total = 30;
14     var msg = passthru`The total is ${total} (${total*1.05} with tax)`;
15     document.write(msg+'<br>');
 1     // String.raw()函数
 2     String.raw = function(strings, ...values){
 3         var result = '';
 4         for(var index = 0; index < values.length; index++){
 5             result += strings.raw[index] + values[index];
 6         }
 7         result += strings.raw[index];
 8         return result;
 9     }
10     var s = String.raw({ raw: 'test' }, 0, 1, 2);
11     var s2 = String.raw({ raw: ['t','e','s','t'] }, 0, 1, 2);
12     document.write(s,' '+s2);

参考地址:ES6教程字符串的扩展—W3Cschool

posted @ 2017-07-05 20:28  gq_orange  阅读(469)  评论(0编辑  收藏  举报