ES6的模板字符串

传统的 JavaScript 语言,输出模板通常是这样写:

$('#result').append(
  'There are <b>' + basket.count + '</b> ' +
  'items in your basket, ' +
  '<em>' + basket.onSale +
  '</em> are on sale!'
);
上面的写法繁琐不方便,ES6引入了模板字符串

$('#result').append(`
  There are <b>${basket.count}</b> items
   in your basket, <em>${basket.onSale}</em>
  are on sale!
`);
模板字符串是增强版的字符串,用反引号(‘)来标识。需要将变量名写在${}中,若${}中的变量没有声明,将报错

// 字符串中嵌入变量
let name = "Bob", time = "today";
console.log(`Hello ${name}, how are you ${time}?`);//Hello Bob,how are you today?
若在模板字符串中需要使用反引号,则前面要用反斜杠转义

let greeting = `\`Yo\` World!`;
模板字符串的大括号中可以放入任意的JavaScript表达式,可以进行运算,以及引用对想的属性

let x = 1;
let y = 2;

console.log(`${x} + ${y} = ${x + y}`);// "1 + 2 = 3"
let obj = {x: 1, y: 2};
console.log(`${obj.x + obj.y}`);// "3"
模板字符串的大括号还可以调用函数

function fn() {
  return "Hello World";
}

console.log(`foo ${fn()} bar`);// foo Hello World bar
模板字符串的大括号内部是字符串,将会原样输出

console.log(`Hello ${'World'}`);// "Hello World

模板字符串还可以嵌套

const tmpl = addrs => `
  <table>
  ${addrs.map(addr => `
    <tr><td>${addr.first}</td></tr>
    <tr><td>${addr.last}</td></tr>
  `).join('')}
  </table>
`;
const data = [
    { first: '<Jane>', last: 'Bond' },
    { first: 'Lars', last: '<Croft>' },
];

console.log(tmpl(data));
// <table>
//
//   <tr><td><Jane></td></tr>
//   <tr><td>Bond</td></tr>
//
//   <tr><td>Lars</td></tr>
//   <tr><td><Croft></td></tr>
//
// </table>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值