diff --git a/docs/string-methods.md b/docs/string-methods.md index 318d0f7..0d91bb3 100644 --- a/docs/string-methods.md +++ b/docs/string-methods.md @@ -49,16 +49,16 @@ String.raw`Hi\\n` === "Hi\\\\n" // true `String.raw()`方法可以作为处理模板字符串的基本方法,它会将所有变量替换,而且对斜杠进行转义,方便下一步作为字符串来使用。 -`String.raw()`方法也可以作为正常的函数使用。这时,它的第一个参数,应该是一个具有`raw`属性的对象,且`raw`属性的值应该是一个数组。 +`String.raw()`本质上是一个正常的函数,只是专用于模板字符串的标签函数。如果写成正常函数的形式,它的第一个参数,应该是一个具有`raw`属性的对象,且`raw`属性的值应该是一个数组,对应模板字符串解析后的值。 ```javascript -String.raw({ raw: 'test' }, 0, 1, 2); -// 't0e1s2t' - +// `foo${1 + 2}bar` // 等同于 -String.raw({ raw: ['t','e','s','t'] }, 0, 1, 2); +String.raw({ raw: ['foo', 'bar'] }, 1 + 2) // "foo3bar" ``` +上面代码中,`String.raw()`方法的第一个参数是一个对象,它的`raw`属性等同于原始的模板字符串解析后得到的数组。 + 作为函数,`String.raw()`的代码实现基本如下。 ```javascript