美文网首页
模板字符串的实现原理

模板字符串的实现原理

作者: 孤独的豺狼 | 来源:发表于2020-04-16 14:32 被阅读0次

模板字符串是什么

以前我们都是使用拼接字符串的形式来写,这样对我们来说很烦恼,稍有不慎就会拼接错误,es6出了一个拼接字符串的方法很好的帮我们解决了这个问题,接下来就给大家介绍一下什么是模板字符串
模板字符串就是有原本的""改成了我们现在的``,在模板字符串里面我们可以直接定义变量,${}里面写的就是我们要输出的变量
字符串拼接

let name="张三",age="18";
let str=name+" 今年 "+ age +" 岁了";

模板字符串

let name="张三",age="18";
let str=`${name} 今年  ${age}  岁了`;

我们可以看到其实他们现在的区别也没多大,但是大家想一下,如果拼接的多了或者结构复杂了那么这个区别就自然出现了

模拟模板字符串

现在我们大概知道模板字符串是个啥东西了,但是我们底层的原理还不是很熟悉,那我们就来模拟一下看看吧

let name="张三",age="18";
let desc="${name} 今年  ${age}  岁了";
function replace(desc){
    return desc.replace(/\$\{([^}]+)\}/g,function(mathed,key,c,d){
            console.log(mathed,key,c,d)
            //${name} name 0 ${name} 今年  ${age}  岁了
            //${age} age 12 ${name} 今年  ${age}  岁了
            //replace中 mathed 为匹配到的字符串,key为对应替换的字符串,c为替换的位置,d为整个要替换的字符串。
            return eval(key);
            //eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。这里的eval会将原本的name和age改成成张三和18
    })
}

模板字符串其实就是我们使用正则将${}取出来然后进行赋值,是不是感觉很简单呢,可以动手自己试试吧

相关文章

  • js模板引擎的实现

    这里实现一个较传统的模板引擎。模板引擎的实现原理其实就是拼接字符串,+号拼接速度最快。这里我们采用这种方式实现一个...

  • ES6常用新特性

    ES6新特性介绍 模板字符串 模板字符串实现字符串拼接 模板字符串实现多行字符串 结构赋值 对象的解构赋值 数组的...

  • ES6系列 (三)模板字面量

    特性 模板字面量实现字符串插值 模板字面量实现多行字符串 模板字面量实现可重用的模板 理解标记模板字面量如何自定义...

  • 模板字符串的实现原理

    模板字符串是什么 以前我们都是使用拼接字符串的形式来写,这样对我们来说很烦恼,稍有不慎就会拼接错误,es6出了一个...

  • 模板字符串

    不要将模板字符串与模板引擎混淆,是两回事,或者说模板字符串是将以往的格式化字符串以一种语法来实现了。模板字符串需要...

  • ES6对字符串的拓展(2018-04-18)

    新特性:模板字符串 “模板字符串”是字符串的一个新特性,传统的字符串实现拼接的时候,要将变量插入字符串中,语法...

  • 设计模式(行为型)-- 模板模式

    模板模式的原理与实现 模板模式,全称是模板方法设计模式,英文是 Template Method Design Pa...

  • 行为型-Template

    模板模式的原理与实现 模板模式,全称是模板方法设计模式,英文是 Template Method Design Pa...

  • 如何了解JavaScript模板引擎实现原理

    这篇文章主要介绍了JavaScript模板引擎实现原理,结合实例形式详细分析了JavaScript模板引擎原理、定...

  • 第三章 Dubbo 集成 Sentinel 设计

    原理 基于 DubboFilter 机制,实现 SentinelFilter,在其中定义 Sentinel 的模板...

网友评论

      本文标题:模板字符串的实现原理

      本文链接:https://www.haomeiwen.com/subject/kuervhtx.html