ES6模板字符串,即反引号(`)之详解

       模板字符串(template string)也就是模板字面量,是增强版的字符串,用反引号(`)来表示。它既可以当作普通字符串来使用,也可以在字符串中嵌套变量。

注意:在模板字符串中嵌入变量的时候,需要将变量名写在${}中。

       传统的JS语言,写法(拼字符串)相当繁琐不方便,ES6 引入了模板字符串解决这个问题,传统的输出模板通常是下面这样写的:

var a = 1;
var b = 2;
var sum = a + b;
var res = a + '+' + b + '的和是' + sum;
console.log(res);

// =======================================

var obj = {name:'张三;',age:18};
var str = '姓名:'+obj.name+'年龄:'+obj.age;
console.log(str);

       结果:

       引入了模板字符串后,输出模板是下面这样写的:

var a = 1
var b = 2;
var sum = a + b;
var res = `a+b的和是${sum}`;
console.log(res);

// =======================================

var obj=  {name:'张三;',age:18};
var str = `姓名:${obj.name}年龄:${obj.age}`;
console.log(str);

       结果:

       可以看出,上面代码中的模板字符串,都是用反引号表示。那么如果要在模板字符串中需要使用反引号,该怎么写呢?则前面要用反斜杠转义。
       如下所示:

let a= `\`Hello\` World!`;

       结果:

       当我们使用模板字符串表示多行字符串的时候,要注意,此时所有的空格和缩进都会被保留在输出之中
       代码如下:

let a = `H
e
l
l
o
`;
console.log(a);

       结果:

       ${}的大括号内部可以放入任意的 JS表达式,可以进行运算,也可以引用对象属性。
       如下所示:

let x = 1;let y = 2;

let sum1 = `${x} + ${y} = ${x + y}`;
console.log(sum1); // 1 + 2 = 3

let sum2 =`${x} + ${y * 2} = ${x + y * 2}`;
console.log(sum2); // 1 + 4 = 5

let obj = {x: 1, y: 2};

let sum3 = `${obj.x + obj.y}`;
console.log(sum3); // 3

       结果:

       ${}的大括号内部不光可以进行运算、引用对象属性,还可以调用函数
       如下所示:

function fn() {
  return "Hello World";
  }
let res = `foo ${fn()} bar`;
console.log(res); // foo Hello World bar

       结果:

发布了25 篇原创文章 · 获赞 94 · 访问量 6795

猜你喜欢

转载自blog.csdn.net/weixin_42881768/article/details/104608894