ES6模板字符串

初识模板字符串`` 和 ${}

let person = {
        name: "changhao",
        age: 21,
    }

    let fiveYearsLater = `${person.name}五年后的年龄是${person.age + 5}`;
    console.log(fiveYearsLater)

输出

书写 HTML 模板

 let temp = `
    <div>
         <p></p>
    </div> 
    `
    
    console.log(temp)

输出:
在这里插入图片描述

这里发现模板字符串会保留 两个反单引号之间的空格 可以使用 .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('')}

在这里插入图片描述

模板字符串更高端的用法,标签模板字符串

先写一个简单的模板字符串

	    const user = "changhao";
	    
        const topic = "I like to play the guitar";
        
        const sentence = `${user} said ${topic}`
        
        console.log(sentence)

输出:
在这里插入图片描述
在上面案例的模板中 添加一个标签 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)
    }

输出:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值