當前正學習ES6 ,遇到string.raw費心思,現將試驗後的結果整理以下:數組
網上得來的試驗:函數
語法學習
String.raw`templateStr`; spa
String.raw(obj, ...substitutions);rest
templateStrcode
必需。模板字符串。對象
objblog
必需。一個使用對象文本表示法指定的格式正確的對象,例如 { raw: 「value」 }。字符串
...substitutionsstring
可選。一個數組(rest 參數),包含一個或多個替換值。
String.raw 函數旨在與模板字符串一塊兒使用。原始字符串將包含存在於字符串中的任何轉義字符和反斜槓。
若是 obj 不是格式正確的對象,則會引起錯誤。
一、
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;}
能夠用在字符串或數組的插入組成新字符串。
二、
String.raw 函數
返回模板字符串的原始字符串形式
console.log(String.raw `foo\n${ 42 }bar` === "foo\\n42bar")//true