javascript经典面试题:字体高亮函数
题目:请你完成 highlight 函数,可以把模版字符串中的插入内容替换掉,并且插入文档以后显示红色。例如:
const yourName = 'ScriptOJ'
const myName = 'Jerry'
document.body.innerHTML = highlight`Hello, ${yourName}. I am ${myName}.`
上面例子的页面显示如下:
0_1498033735172_upload-2abd65b1-1e98-46ba-b46f-df4188a036a5
请你完成 highlight 函数的编写。
答案: css:
.highlight {
color: red;
}
js:
// 考察的是 Tagged template literals 的使用
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals
const highlight = (strings, ...args) => {
return strings.reduce((str, cur, i) => {
return `${str}${cur}${args[i] ? `<span class="highlight">${args[i]}</span>` : '' }`
}, '')
}
THE END