ES6模板字符串和标签模板的应用实例分析

ES6 中对字符串进行了扩展,而模板字符串就是一个非常实用的方式,可以在html中实现与变量和方法的混编

之前我们手动拼接字符串的方式

let hello = 'Hello'; let html = '<div>' + '<span>'+ hello +'</span>' + '</div>'; console.log(html); // <div><span>Hello</span></div>

ES6中使用模板字符串来优化了拼接的方式

let name = 'Joh'; let qq = '56655'; function log() { return 'Hi there!'; } let html = ` <div> <ul> <li>${ name === 'Joh' ? 'is Joh' : 'not Joh'}</li> <li>${qq}</li> <li>${log()}</li> <ul> </div> ` console.log(html); /* // 输出如下html: <div> <ul> <li>is Joh</li> <li>56655</li> <li>Hi there!</li> <ul> </div> */

可以看出模板字符串优化了之前拼接字符串的方式,更方便于编程

关于标签模板

未经处理的标签函数与模板字符串的结合,导致模板字符串失效

function tag() { return 'tag'; } let name = "Joh"; var res = tag`hello ${name}`; console.log(res); // tag

标签函数对模板字符串进行处理, 安全编码的示例:

function safe(strArr) { let res = ''; console.log(arguments); for(var i=0, len = strArr.length; i < len; i++) { res += strArr[i].replace(/</g, '&lt;').replace(/>/g, '&gt;'); if(i < arguments.length -1) { res += arguments[i + 1]; } } return res; } let name = 'Joh'; var result = safe`<p>hello ${name}</p>`; console.log(result); // &ltp&gt;hello Joh&lt/p&gt;

更多关于JavaScript相关内容可查看本站专题:《javascript面向对象入门教程》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/e56d6ddcce06f7bb5ca0f63022794af3.html