ES6:string.raw浅析

当前正学习ES6 ,遇到string.raw费心思,现将试验后的结果整理如下:

网上得来的试验:

  1. 语法

    String.raw`templateStr`; 

    String.raw(obj, ...substitutions);

  2.  参数

    templateStr

    必需。模板字符串。

    obj

    必需。一个使用对象文本表示法指定的格式正确的对象,例如 { raw: “value” }。

    ...substitutions

    可选。一个数组(rest 参数),包含一个或多个替换值。

  3. 备注

    String.raw 函数旨在与模板字符串一起使用。原始字符串将包含存在于字符串中的任何转义字符和反斜杠。

    如果 obj 不是格式正确的对象,则会引发错误。

     

    经试验的实例如下:

1、

String.raw是处理模板字符串的一个基本方法。

String.raw({raw: 'test'}, 1,2,3,4); //t1e2s3t 等同于String.raw({raw: ['t','e','s','t']}, 1,2,3,4)

执行原理如下:

String.raw = function (strings, ...values) { var output = ""; for (var index = 0; index < strings.length; index++) { output += strings.raw[index] + values[index]; } output +=strings.raw[index] return output;}

可以用在字符串或数组的插入组成新字符串。

2、

String.raw 函数  

返回模板字符串的原始字符串形式

console.log(String.raw `foo\n${ 42 }bar` === "foo\\n42bar")//true

 


posted @ 2017-10-12 15:16  liuxixi  阅读(1893)  评论(0编辑  收藏  举报