mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-24 18:32:22 +00:00
docs(string): edit String.raw
This commit is contained in:
parent
0ce6129271
commit
ee982c4314
@ -865,32 +865,17 @@ ES6 还为原生的 String 对象,提供了一个`raw`方法。
|
|||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
String.raw`Hi\n${2+3}!`;
|
String.raw`Hi\n${2+3}!`;
|
||||||
// "Hi\\n5!"
|
// 返回 "Hi\\n5!"
|
||||||
|
|
||||||
String.raw`Hi\u000A!`;
|
String.raw`Hi\u000A!`;
|
||||||
// 'Hi\\u000A!'
|
// 返回 "Hi\\u000A!"
|
||||||
```
|
```
|
||||||
|
|
||||||
如果原字符串的斜杠已经转义,那么`String.raw`不会做任何处理。
|
如果原字符串的斜杠已经转义,那么`String.raw`会进行再次转义。
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
String.raw`Hi\\n`
|
String.raw`Hi\\n`
|
||||||
// "Hi\\n"
|
// 返回 "Hi\\\\n"
|
||||||
```
|
|
||||||
|
|
||||||
`String.raw`的代码基本如下。
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
String.raw = function (strings, ...values) {
|
|
||||||
let output = "";
|
|
||||||
let index;
|
|
||||||
for (index = 0; index < values.length; index++) {
|
|
||||||
output += strings.raw[index] + values[index];
|
|
||||||
}
|
|
||||||
|
|
||||||
output += strings.raw[index]
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
`String.raw`方法可以作为处理模板字符串的基本方法,它会将所有变量替换,而且对斜杠进行转义,方便下一步作为字符串来使用。
|
`String.raw`方法可以作为处理模板字符串的基本方法,它会将所有变量替换,而且对斜杠进行转义,方便下一步作为字符串来使用。
|
||||||
@ -905,6 +890,21 @@ String.raw({ raw: 'test' }, 0, 1, 2);
|
|||||||
String.raw({ raw: ['t','e','s','t'] }, 0, 1, 2);
|
String.raw({ raw: ['t','e','s','t'] }, 0, 1, 2);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
作为函数,`String.raw`的代码实现基本如下。
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
String.raw = function (strings, ...values) {
|
||||||
|
let output = '';
|
||||||
|
let index;
|
||||||
|
for (index = 0; index < values.length; index++) {
|
||||||
|
output += strings.raw[index] + values[index];
|
||||||
|
}
|
||||||
|
|
||||||
|
output += strings.raw[index]
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## 模板字符串的限制
|
## 模板字符串的限制
|
||||||
|
|
||||||
前面提到标签模板里面,可以内嵌其他语言。但是,模板字符串默认会将字符串转义,导致无法嵌入其他语言。
|
前面提到标签模板里面,可以内嵌其他语言。但是,模板字符串默认会将字符串转义,导致无法嵌入其他语言。
|
||||||
|
Loading…
x
Reference in New Issue
Block a user