在利用 React.js 开发网页的时候有没有用过一个很好用的组件叫 styled-components,styled-components 是一个用来产生元素样式的组件,让你可以在 JSX 中编写 css 达到 CSS-IN-JS 的技巧。

之前在使用 styled-components 的时候有发现明明要产生元素的 method 都是 function,可是在 styled-compoents 中却看不到任何 "平常" 会使用的 call function 技巧,后来仔细去看了 MDN 才知道原来这个是 ES6 新进的方法。

Template Strings

在开始讲 tagged template literal 时,必须要先讲一下 template strings,相信有在使用 ES6 的人都知道 template strings 是非常好用的方法,解决了以往组合字串上需要用冗长的加号不断的拼接。

// ES5
var myName = '前端Sky'
console.log("Hello " + myName + '!')
// 'Hello 前端Sky!'// ES6
const myName = '前端Sky'
console.log(`Hello ${myName}`)
// 'Hello 前端Sky!'
甚至 template strings 也可以利用 multi-line 的效果进而达到换行的效果。
// ES5
console.log('Hello\n' + '前端Sky')
// Hello
// 前端Sky// Es6
console.log(`
Hello
前端Sky
`)
// Hello
// 前端Sky

我们知道当字符串变得很长,用普通的拼接写法是很繁琐的,而且在插入一些javascript、template或者html template的时候,会写的很冗长。而且一步小心就会因为引号的缺失导致整个template报错。
这个时候,我们就要请出来我们今天要说的es6增加的模版字符串。

语法

模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。
最后我们用模版字符串改写一下上面的一些场景:

// 拼接变量
var inner = `这里有${count}个炒粉工`
// 换行
var _inner = `这里有<b>${count}</b>个炒粉工每天只知道吹水`
// 因为模版字符串外部为反引号,所以单双嵌套的场景还是比较少,如果在内部的字符串出现了单双嵌套规则还是和原来一致的。
// javascript template(百度埋点是比较常见的一个了)
var doc = document.body, hmc = document.createElement('script');
hmc.innerHTML = `var _hmt = _hmt || [];        (function() {           var hm = document.createElement("script");          hm.src = "https://hm.baidu.com/hm.js";           var s = document.getElementsByTagName("script")[0];     s.parentNode.insertBefore(hm, s);})();       `;
doc.appendChild(hmc);
// 嵌套反引号需要转义
var $r = `这里有\`${count}\`个炒粉工`
// 表达式
`${count} + ${count} = ${count * 2}` // 2 + 2 = 4
// 运行方法(默认会调用toString)
const $function = function(count) { return `这里有${count}个炒粉工` }
`其实, ${$function(count)}` // 其实,这里有2个炒粉工
// 模版字符串中调用模版字符串
var $$r = `你确定这里是${count > 0 ? `${count}个炒粉工` : '水军'}`
alert`123`
// 等同于
alert('123')

科普: ECMAScript 6.0(简称es6)

`` 反引号在前端的作用:模板字符串相关推荐

  1. 后端字段为null,前端使用ES6模板字符串进行展示

    项目需求:后端字段为null,前端使用ES6模板字符串展示为空 未处理前效果: // ES6的模板字符串可写表达式<template #default="{ row }"&g ...

  2. [ 前端开发 ] ES6模板字符串

    ES6模板字符串 模板字符串是 ES6 的新特性,他的作用是减少了字符串的拼接操作,提高了程序的可读性 接下来看一个栗子

  3. JS 单引号、双引号与反引号的区别

    文章目录 1.单引号&双引号 2.反引号 参考文献 每一个编程语言都有引号,但作用和用法略有区别.JS 也存在单引号.双引号与反引号,其用法与其他语言也有所区别. 1.单引号&双引号 ...

  4. ES6:模板字符串的简单使用

    本来是个后端工程师,因为最近要做开源项目,还不会前端 TnT ,没办法只能一步步学啦.前端知识知之甚微,基本小白一个.em...顺便吐槽下自己也要往full stack的方向前进了. 好多东西不会,在 ...

  5. html 模板字符串,ES6:模板字符串

    标签: 模板字符串 JavaScript ES6 前端 web 本博客版权归本人和饥人谷所有,转载需说明来源 内容转载自阮一峰老师的ES6入门 1.基本用法 传统的JavaScript语言,输出模板通 ...

  6. ES6学习(模板字符串)

    模板字符串 传统的JavaScript语言,输出模板通常是这样写的. const name = 'Jack'; const age = 18; const sentence = name + ' is ...

  7. 用ES6中的模板字符串实现在字符串中添加变量和字符串换行

    什么是模板字符串 它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量. 例如: var str1 = '你好吗' +'李华';var str2 = `你好吗 李华`;conso ...

  8. vue 之 模板字符串

    传统的JavaScript语言,输出模板通常是这样的写的. 1 2 3 4 5 6 $('#result').append(    'There are <b>' + basket.cou ...

  9. ES6 Template String 模板字符串

    语法 模板字符串(Template String)是增强版的字符串,用反引号(`)标识,它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量. 用法 // 普通字符串 `In J ...

最新文章

  1. Java中使用memcache缓存
  2. Transformer和自注意力机制Self-Attention详解和时间复杂度计算+Image Transformer简介
  3. 圆形和多边形雷达图python-Matplotlib绘制雷达图和三维图的示例代码
  4. 强大的SPGridView
  5. Jenkins(二)
  6. vscode 运行html服务器运行_如何在vscode中调用浏览器运行html?
  7. 5 Android数据存储 任务二 应用程序数据文件夹里的文件读写 ,
  8. 软件需求与分析课堂讨论
  9. Python Tkinter之variable用法
  10. linux应用--yum
  11. 如何批量设置 Word 文档的打开密码?
  12. 计算机中职生毕业鉴定评语,中职生学生毕业鉴定评语
  13. GDB 调试 Nginx 磨刀不误砍柴工
  14. 【StyleGAN代码学习】StyleGAN损失函数与训练过程
  15. SS00011.elasticsearch——|HadoopElasticSearch集中式日志分析系统.v11|——|Elasticsearch.v11|
  16. Java设计模式学习以及底层源码分析
  17. 社科院与杜兰大学金融管理硕士项目——与优秀的人同行,做更好的自己!
  18. python tk下拉列表_Python 窗体(tkinter)下拉列表框(Combobox)实例
  19. 你所不了解的分布性系统之高可用篇
  20. 中电金信2022春季校园招聘火热开启

热门文章

  1. Java日志技术是什么
  2. VMware虚拟机网卡重启失败
  3. Python异步爬虫之协程抓取妹子图片(aiohttp、aiofiles)
  4. 心理月刊杂志心理月刊杂志社心理月刊编辑部2023年第1期目录
  5. 可视化数据网页开发Google Charts(一):加载库
  6. ## 祝你幸福的语句
  7. 360前端星计划—技术翻译:进阶的直梯(李松峰)
  8. Java项目开发环境搭建
  9. 总裁演说思维:如何学会说话随机应变
  10. 实现上一篇,下一篇的效果