es6模板字符串_es6字符串模板

es6模板字符串_es6字符串模板模板字符串主要用于插入表达式!

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言:看了MDN的官方文档,让我一个头两个大。可能又陷入了完美主义的陷阱:总是想一下子把关于某方面的知识全部看完,全部看懂。就像我本来只是想查看一下单词take,却把所有的关于take的短语看了一遍,结果一个没记住。有些用法可能从它诞生到以后被废弃都使用不到,花费时间在它上面没有任何意义。因此,我是想介绍一下它最基础,最核心的用法。其他不常用用法可能会一笔带过。

一、模板字符串

模板字符串是可以插入表达式的字符串字面量

在ES6(ES2015)中引入,另外,它还可以具有多行文本,换句话说可以直接输出回车换行符。

1. 模板字符串和传统字符串比较

传统字符串字面量使用单引号''或者双引号"",如下所示

var str = 'hello world';
var str2 = "hello world";

模板字符串使用反单引号(backquote) ``,如下所示

var str3 = `hello world`;

反单引号位置,如下图所示,英文输入状态下按下可输入

在这里插入图片描述

形式虽然有差别,但是作为字符串字面量本质上是完全等价的。

在这里插入图片描述

2. 模板字符串可以插入表达式 (重点)

语法如下

`${expression}`

简介:expression可以是任意常量、变量、函数调用。在${expression}前后,也可以有任意的其他合法的字符,例如`abc${expression}xyz`。最终,${expression} 会转化为字符串和前后的字符串拼接,如果有的话。

当没有字符串时,我们想打印一个对象的信息,只能通过字符串拼接。

var xiaoming = { 
   
	name: '小明',
	age: 14,
	sex: 'male'
};

var bio = 'name: ' + xiaoming.name + ', age: ' + xiaoming.age + ', sex: ' + 'male';

console.log(bio);

现在,只有三个属性,拼接字符串还可以介绍。但是,当对象的属性比较多时,拼接字符串就会很费时费力。这时,应该用模板字符串。

var xiaoming = { 
   
	name: '小明',
	age: 14,
	sex: 'male'
};

var bio = `name: ${ 
     xiaoming.name}, age: ${ 
     xiaoming.age}, sex: ${ 
     xiaoming.sex}`;

console.log(bio);

可以达到相同的目的
在这里插入图片描述
表达式可以是一个常量、变量、函数调用,它们最终都可返回一个值,这个值会被转换成字符串类型,然后和其他字符拼接。如果是引用类型的值,会调用对象的toString方法,最终把返回字符串拼接

在这里插入图片描述

在这里插入图片描述

3. 模板字符串可以有多行文本

可以直接在``中输入回车换行符

var str = `我是第一行 我是第二行`

输出效果在这里插入图片描述

这在传统字符中是不允许的,直接插入换行符

JavaScript会报错:

在这里插入图片描述

主要适用于字符串中包含HTML标签的场景。如果是纯文本字符串,你输入回车字符串,这是代码缩进中的字符也会被包含进来。
在这里插入图片描述

输出效果

在这里插入图片描述
这时,你只能把代码中的缩进字符删除,但是会影响代码的可读性,得不偿失。但是如果字符串中时html标签,最终要插入到dom树中,缩进的字符会因为html的空白折叠现象忽略,因此可以使用。如果单纯再代码中使用字符串,完全没必要使用这个功能,简直是一种鸡肋的存在。

二、学生信息加载demo

一个小demo,练习下模板字符串的使用

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style> span { 
      font-weight:bold; } </style>
</head>
<body>

    <h1>学生信息列表</h1>
    <ul id="list">
        <li id='info'>信息加载中...</li>
    </ul>

    <script> const students = [ { 
      name: 'Alice', age: 20, sex: 'famale' }, { 
      name: 'Jimmy', age: 15, sex: 'male' }, { 
      name: 'xiaoxiao', age: 23, sex: 'female' } ]; const list = document.querySelector('#list'); let index = 0; const printTimer = setInterval(()=>{ 
      if (index >= students.length) { 
      clearInterval(printTimer); document.getElementById('info').innerText = '信息加载完毕!'; } let liNode = document.createElement('li'); liNode.innerHTML = `<span>name: </span>${ 
       students[index].name}, <span>age: </span>${ 
       students[index].age}, <span>sex: </span>${ 
       students[index].sex}`; list.appendChild(liNode); index ++; }, 2000) </script>
</body>
</html>

效果如下:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/171842.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 现代汉语常用3500字

    现代汉语常用3500字最近给娃儿取名想着遍历个好名字居然没有完整的3500汉字表就弄了一个现代汉语常用3500字=常见字2500字+次常见字1000字常用字2500字次常用汉字1000字现代汉语常用3500字

    2022年7月1日
    26
  • C–C语言中volatile关键字的作用[通俗易懂]

    C–C语言中volatile关键字的作用[通俗易懂]转载:http://blog.csdn.net/tigerjibo/article/details/7427366一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高

    2022年5月8日
    38
  • div内图片和文字水平垂直居中「建议收藏」

    div内图片和文字水平垂直居中「建议收藏」大小不固定的图片、多行文字的水平垂直居中本文综述想必写css的都知道如何让单行文字在高度固定的容器内垂直居中,但是您知道或者想过让行数不固定的文字在高度固定的容器内垂直居中呢?本文将会告诉你如何实现多行文字的垂直居中显示。关于图片垂直居中显示,想必很多写css的人都研究过,或者说是搜寻过方法。淘宝团队似乎提供了一种不错的方法,用font-size解决IE下垂直居中的问题,是

    2025年6月26日
    2
  • Java面试题:详细说明一下可重入锁ReentrantLock的原理

    Java面试题:详细说明一下可重入锁ReentrantLock的原理原文地址:https://baijiahao.baidu.com/s?id=1594800969528243663&amp;wfr=spider&amp;for=pc一个关于打水的小故事话说从前有一个村子,在这个村子中有一口水井,家家户户都需要到这口井里打水喝。由于井水有限,大家只能依次打水。为了实现家家有水喝,户户有水用的目标,村长绞尽脑汁,最终想出了一个比较合理的方案。首先,在水井…

    2022年6月13日
    28
  • 用友java开发待遇_【北京用友软件工资】java开发工程师待遇-看准网[通俗易懂]

    用友java开发待遇_【北京用友软件工资】java开发工程师待遇-看准网[通俗易懂]电话面试30分钟,主要刚开始问java的一些基础知识,然后开始问数据库,最后问框架。主要具体题目如下:用友技术面试题1.你能说下你使用的java集合有哪些吗?2.你能说下你在做项目中出现了哪些运行时期异常吗?3.ArrayList集合中怎样去除重复元素?4.要比较ArrayList集合中元素的大小,怎样比较?5.==和equals的区别?定义了student类,有age属性,然后a=ne…

    2022年9月24日
    4
  • php 中使用cURL发送get/post请求,上传图片,批处理

    php 中使用cURL发送get/post请求,上传图片,批处理

    2021年10月29日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号