前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ES6模板字符串详细介绍

ES6模板字符串详细介绍

作者头像
Javanx
发布2019-09-04 11:17:16
5890
发布2019-09-04 11:17:16
举报
文章被收录于专栏:web秀web秀

前言

ES6模板字符串详细介绍
ES6模板字符串详细介绍

在ES6之前,我们输出模板通常是这种方式:

代码语言:javascript
复制
$('#result').append(
  'I am ' + web.name + '</b>' +
  'I`m ' + web.year + ' years old'
);

这种方式,经常会有引号、加号多或者少的问题出现。写法相当繁琐不方便,ES6 引入了模板字符串解决这个问题:

代码语言:javascript
复制
$('#result').append(`
  I am ${web.name} </b>
  I\`m ${web.year} years old
`);

这种写法是不是看起来更舒服?

模板字符串技巧

1、模板字符串(template string)是增强版的字符串,用反引号(`)标识。 2、模板字符串中嵌入变量,需要将变量名写在${}之中。 3、如果模板字符串需要使用反引号,则前面要用反斜杠转义。 4、如果使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中,如果你不想要这个空格和缩进,可以使用trim方法消除它。

代码语言:javascript
复制
$('#result').append(`
  I am ${web.name} </b>
  I\`m ${web.year} years old
`.trim());

5、大括号内部可以放入任意的 JavaScript 表达式,可以进行运算,以及引用对象属性。

代码语言:javascript
复制
let x = 1;
let y = 2;

`${x} + ${y} = ${x + y}`
// "1 + 2 = 3"

`${x} + ${y * 2} = ${x + y * 2}`
// "1 + 4 = 5"

let obj = {x: 1, y: 2};
`${obj.x + obj.y}`
// "3"

6、模板字符串之中能调用函数

代码语言:javascript
复制
function fn() {
  return "web秀";
}

`I am ${fn()}`
// "I am web秀"

let func = (name) => `Hello ${name}!`;
func('web秀') // "Hello web秀!"

7、模板字符串之中嵌套赋值模板

代码语言:javascript
复制
let data = [{
  id: 1,
  name: 'NO_' + 1
},{
  id: 2,
  name: 'NO_' + 2
}]
const tmpl = addrs => `
  <table>
  ${addrs.map(addr => `
    <tr><td>${addr.id}</td></tr>
    <tr><td>${addr.name}</td></tr>
  `).join('')}
  </table>
`;
console.log(tmpl(data));
// <table>
//   <tr><td>1</td></tr>
//   <tr><td>NO_1</td></tr>
//   <tr><td>2</td></tr>
//   <tr><td>NO_2</td></tr>
// </table>

8、模板字符串中的变量必须声明,否则报错。

代码语言:javascript
复制
// 变量place没有声明
let msg = `Hello, ${name}`;
// error: VM7585:2 Uncaught ReferenceError: name is not defined
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年4月25日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 模板字符串技巧
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档