ES6中的模板字符串使用方法

Posted kiimi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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!
`);

模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串(如果使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中;如果你不想要这个换行,可以使用trim方法消除它。(在末尾加上.trim())),或者在字符串中嵌入变量。

// 普通字符串
`In JavaScript ‘\n‘ is a line-feed.`

// 多行字符串
`In JavaScript this is
 not legal.`

console.log(`string text line 1
string text line 2`);

// 字符串中嵌入变量
let name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?`

上面代码中的模板字符串,都是用反引号表示。如果在模板字符串中需要使用反引号,则前面要用反斜杠转义。

let greeting = `\`Yo\` World!`;

模板字符串之中还能调用函数。

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

`foo ${fn()} bar`
// foo Hello World bar

使用<%...%>放置 JavaScript 代码,使用<%= ... %>输出 JavaScript 表达式

let template = `
<ul>
  <% for(let i=0; i < data.supplies.length; i++) { %>
    <li><%= data.supplies[i] %></li>
  <% } %>
</ul>
`;

 

以上是关于ES6中的模板字符串使用方法的主要内容,如果未能解决你的问题,请参考以下文章

ES6中的模板字符串和新XSS Payload

ES6:模板字符串&函数&进制&Symbol数据结构

ES6中的模板字符串使用方法

ES6中的模板字符串---反引号``

es6 中的 模板字符串

es6字符串模板总结