es6——模板字符串

模板字符串

`进行处理的字符串 或者 ${变量(常量)或者 表达式(≠语句)}`

        // 原先的字符串要实现转行或空格等特殊行为,需要用对应的特殊字符进行转义
        const str = '今天\n下暴雨';
        console.log(str);

        // es6提供模板字符串,从而实现对字符串的灵活处理

        const str1 = `今天下暴雨`;
        console.log(str1);

        // 模板字符串 浏览器可识别模板字符串中的任何特殊字符——包括转行、空格.....
        const str11 = `今天
                下暴雨
                `;
        console.log(str11);

        const str111 = `今天
        下暴雨
                `;
        console.log(str111);

        // 内容为表达式时,浏览器会解析模板字符串中的表达式
        const str_ex = `${1+1}`;
        console.log(str_ex);

        // 内容为语句时
        // 浏览器仍会解析语句,并执行语句
        // 但解析和执行的行为会脱离模板字符串的范围
        // 当前语句在模板字符串中被返回undefined

        function fn() {
            console.log("我是fn函数")
        };
        const str_lan = `${fn()}`;
        console.log(str_lan);

输出结果如下:

 标签模板字符串 

对模板字符串进行标记

格式:标记名`模板字符串`

标记是一个函数时,函数参数如下:

参数1:被插值分割的字符串组成的数组

后续参数们:所有插值

        function fun(param1, param2, param3) {
            console.log(param1);
            console.log(param2);
            console.log(param3);
        };
        let name1 = "阿芳";
        let name2 = "阿丽";
        let tagStr = fun `姐妹1${name1}姐妹2${name2}。`;

输出结果:

 标签模板字符串的自定义

        function fun(parts) {
            const values = Array.prototype.slice.apply(arguments).slice(1)
            let str = "";
            for (let i = 0; i < values.length; i++) {
                str += `${parts[i]} : ${values[i]};`;
                // 拼接最后的字符串部分
                if (i == values.length - 1) {
                    str += parts[i + 1]
                };
            };
            return str;
        };

        let name1 = "阿芳";
        let name2 = "阿丽";
        let tagStr = fun `姐妹1${name1}姐妹2${name2}。`;
        console.log(tagStr); //  姐妹1 : 阿芳;姐妹2 : 阿丽;。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值