输出
输出:
这里发现模板字符串会保留 两个反单引号之间的空格 可以使用 .trim( ) 方法删掉空格
let temp = ` <div> <p></p> </div>`.trim() console.log(temp)输出:为何这么丑
也能在里面用函数
const temp = ` <div> <h1>名字是:${person.name}</h1> <ul> ${person.todo.map(todo=> `<li>${todo.name}</li>`)} </ul> </div> ` console.log(temp.trim())输出:
map 方法返回的是一个数组所以map 出来的 li 是数组有逗号间隔 这时候用join 方法 person.todo.map(todo=> `<li>${todo.name}</li>`).join('') //隐 式 返 回,返回值是个数组,然后join('') 把数组中的所有元素放入一个字符串。输出:这就是一个正常模板啦!这样才能用到 HTML页面里面
document.body.innerHTML = temp显示:
复习三元运算
${person.todo.map(todo=> `<li>${todo.name} ${todo.completed ? '√' : '×'}</li>`).join('')}输出: 在上面案例的模板中 添加一个标签 highlight 并定义一些规则,所以对应一个方法
const sentence = highlight`${user} said ${topic}` function highlight() { return "changhao" }然后神奇的发现 整个sentence 被highlight控制了,完全是按照标签的函数方法返回值输出的 只剩下changhao 标签模板的标签方法
// 有二参数 第一个string 是模板字符串里的字符串 said 第二个是 模板字符串 里面的变量 一般用 剩余参数接受,因为数量不确定 ...arr(数组) function highlight(string ,...arr) { return "changhao" }注意点: 当标签模板字符串里的变量作为开头或者结尾的时候,他的string第一个或者最后一个都是空的,
function highlight(string,...arr) { console.log(string) }输出:
