zoukankan      html  css  js  c++  java
  • JS中的模板字符串

    今天为大家说说ES6中的新特性-模板字符串,它为JavaScript提供了简单的字符串插值功能,从此以后,你可以通过一种更加美观、更加方便的方式向字符串中插值了。

    描述:模板字符串是通过反引号(``)来创建字符串的,跟以往的单引号('')和双引号("")的创建方法是一样的。

    const message = 'Hello, World!'; //单引号
    const message = "Hello, World"; //双引号
    const message = `Hello, World!`; //反引号

    还有不同于其他两种功能的是,模板字符串中所有的空格、新行、缩进,都会原样输出在生成的字符串中。这样我们在用字符串创建dom模板的时候,就方便的多了。

    const div = `
            <div class="hello">
                <p>模板字符串</p>
            </div>
        `;

     功能:模板字符串支持占位符(${expression})。占位符内的表达式在运行时进行计算,并将结果插入到字符串中。

    其中占位符内的表达式可以包含以下三种内容:

    1.变量

    const myVal = 'abc';
    const message = `${myVal}`;

    上面的JS被执行过程中,占位符${myVal}被替换成myVal里面的值,所以后面的message输出的内容也就是abc了。

    2.表达式

    const n1 = 1;
    const n2 = 2;
    const message = `n1 + n2 = ${n1 + n2}, n1比n2大?,${n1 > n2 ? '是的' : '不是'}`;

    3.函数

    const a1 = 1;
    function sum(a, b) {
        return a + b;
    }
    const result = `计算两个数的相加: ${sum(a1, 2)}`; 
    //=> 计算两个数的相加:3;

    下面来说说它内置的一些功能。

    一、数据类型的隐式转换

    占位符表达式结果都会被隐式转换为字符串输出。

    例如number类型:

    const n = 3.5;
    const message = `The number is ${n}`;
    message; // => `The number is 3.5`

    数组类型:

    const numbers = [1, 2, 3];
    const message = `The numbers are ${numbers}`;
    message; // => 'The numbers are 1,2,3'

    如果占位符包含一个对象,按照转换为字符串的规则,该对象也被转换为字符串。调用对象方法toString()来获取对象的字符串表示。

    数组转换的原理是:数组方法join(',')在数组转换为字符串时执行因此字符串插值结果为'The numbers are 1,2,3'

    二、转义占位符

    因为占位符格式${expression}在模板文字中具有特殊含义,所以不能在`${someCharacters}`不转义的情况下使用字符序列

    也就是里面引用的内容必须是已经声明了的。

    const message = `Some weird characters: ${abc}`;
    // Throws "ReferenceError: abc is not defined"

    如果想把‘${abc}‘当做字符串输出,可以使用转义符(反斜杠\)。

    const message = `Some weird characters: \${abc}`;
    message; // => 'Some weird characters follow: ${abc}'

    也就是说如果你需要在模板字符串中引入字符$和{。无论你要实现什么样的目标,你都需要用反斜杠转义每一个字符:`\$`和`\{`。

    const message = `Some weird characters: \${abc} \${abc \${`;
    
    message; // => 'Some weird characters: ${abc} ${abc ${'

    最后想说的是,字符串插值是一个很棒的功能,因为它有助于以简洁易读的方式将值插入字符串文字中。并避免笨拙的字符串连接方法。

  • 相关阅读:
    基于C#.NET C/S架构的生产看板管理系统软件开发框架平台
    VS.NET后端框架,C#.NET开发的服务器端开发框架
    开源.NET开发架构.NET管理系统框架-原创作品
    开源.NET开发架构 .NET管理系统框架
    基于MVC架构的WebApi服务端开发框架核心优势|C/S框架网原创作品
    基于C#.NET三层架构物流运输管理系统(TMS)-C/S框架网原创作品
    C#Winform+SQL开发的基于C/S架构大型ERP系统
    MES系统框架及MES开源框架|C/S框架网软著产品
    C#.NET程序升级框架之软件版本自动升级系统
    原创C/S应用程序开发平台与.NET快速开发框架
  • 原文地址:https://www.cnblogs.com/liao123/p/14854116.html
Copyright © 2011-2022 走看看