# 字符串模板
# 描述
手写ES6中字符串模板的实现
# 思路
使用正则表达式替换字符串模板中的变量
# 代码
/**
* 模板字符串
* @param template 字符串
* @param data 对象
**/
function render(template, data) {
const reg = /\{\{(\w+)\}\}/;
if (reg.test(template)) {
const name = reg.exec(template)[1];
template = template.replace(reg, data[name]);
return render(template, data);
}
return template;
}
// 功能测试
var obj = {
name: 'Aaron',
age: 31
}
var greeting = "Hi, I'm {{name}}, I'm {{age}} years old."
render(greeting, obj);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24