当前位置:Gxlcms > JavaScript > ES6中模板字符串用法介绍(附示例)

ES6中模板字符串用法介绍(附示例)

时间:2021-07-01 10:21:17 帮助过:11人阅读

本篇文章给大家带来的内容是关于ES6中模板字符串用法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

概述

模板字符串出来以后,单引号、双引号哪个好的争论可以退出历史舞台的,模板字符串的`最好!

语法

单行文本

  1. `string text`

多行文本

  1. `string text line 1
  2. string text line 2`

内嵌表达式

  1. `string text ${expression} string text`

标签语法(不太喜欢)

  1. tag `string text ${expression} string text`

单行文本

完全不 care 单引号和双引号,当然,转义`是不可避免的,有所得必有所失去嘛

  1. let single=`string text, '' ""\`` // "string text, '' ""`"

多行文本,也不用关系换行的编码转化问题了,\n也可以走开了

  1. let multip=`string text line 1
  2. string text line 2`
  3. // "string text line 1
  4. // string text line 2"
  1. 所以我们可以这么写代码
  2. "
  3. let dom=`
  4. 我要换行
  5. 我还要换行
  6. `
  7. "
  8. 虽然好像没什么卵用

表达式

这是模板字符串最大的作用了,有好极大好处呢

更强的阅读性和更不容易错的字符串拼接

  1. let name='jack',age=23
  2. let summary=`my name is ${name}, age is ${age}`
  3. console.log(summary) // "my name is jack, age is 23"

对比一下之前的字符串拼接

  1. let name='jack',age=23
  2. let summary='my name is ' + name + ', age is ' + age
  3. console.log(summary) // "my name is jack, age is 23"

可以内嵌表达式,表达式也可以很复杂,但是不推荐

  1. let num1 = 1, num2 = 2
  2. `${num1} + ${num2} = ${num1 + num2}` // '1 + 2 = 3'

模板字符串嵌套

  1. let inner=`${`${'1'}`}` // 1

标签语法

我不太喜欢这个特性

  1. function myTag(strings, personExp, ageExp) {
  2. var str0 = strings[0]; // "that "
  3. var str1 = strings[1]; // " is a "
  4. var str2 = strings[2]; // " "
  5. var ageStr;
  6. if (ageExp > 99){
  7. ageStr = 'centenarian';
  8. } else {
  9. ageStr = 'youngster';
  10. }
  11. return str0 + personExp + str1 + ageStr;
  12. }
  13. var output = myTag`that ${ 'Mike' } is a ${ '22' }`;
  14. console.log(output);// that Mike is a youngster

原始字符串

标签函数的第一个参数strings.raw储存着原始字符串,未经转义

  1. function tag(strings) {
  2. console.log(strings.raw[0]);
  3. }
  4. tag`string text line 1 \n string text line 2`; // "string text line 1 \n string text line 2"

使用String.raw()也是一样的效果,\n是两个字符。

  1. var str = String.raw`Hi\n${2+3}!`;
  2. // "Hi\n5!"
  3. str.length;
  4. // 6
  5. str.split('').join(',');
  6. // "H,i,\,n,5,!"

babel转义

源码

  1. let name="jack",age=23
  2. let summary=`my name is ${name}, age is ${age}`

翻译后

  1. var name = "jack",
  2. age = 23;
  3. var summary = "my name is " + name + ", age is " + age;

以上就是ES6中模板字符串用法介绍(附示例)的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行