系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用


文章目录

  • 系列文章目录
  • 1. 模板字符串
    • 1.1. 写法
    • 1.2. 普通字符串
    • 1.3. 多行字符串
    • 1.4. 嵌入变量
    • 1.5. 注意点
    • 1.6. 嵌套
    • 1.7. 可写成函数
    • 1.8. 练习
  • 2. 标签模板字符串
    • 2.1. 本质
    • 2.2. 参数传入
    • 2.3. 练习
    • 2.3. 应用

1. 模板字符串

1.1. 写法

  • 模板字符串(template string)是增强版的字符串,用反引号(`)标识。
``
  • 它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量

1.2. 普通字符串

此时,用法与""全等。

        const a = `in js '/n' is a line-feed.`;a // "in js '/n' is a line-feed."

1.3. 多行字符串

  • 字符串内的内容可换行。
  • 所有的空格、缩进、换行都会被保留在输出之中。可以用trim()方法消除。
        const b = `In JS this isnot legal.`b // 'In JS this is\n        not legal.'console.log(`string text line 1string text line 2`);/* string text line 1string text line 2 */console.log(`string text line 1string text line 2`.trim());
        const box = document.querySelector('.box');let htmlStr = `<ul><li><p>你好</p></li></ul>`;box.innerHTML = htmlStr;

1.4. 嵌入变量

  • 写法:将变量套入${}中。
  • 用法:${}中可放入任意JavaScript表达式。如,运算,引用对象属性,调用函数等。
let x = 1;
let y = 2;// 运算
`${x} + ${y} = ${x + y}`
// "1 + 2 = 3"`${x} + ${y * 2} = ${x + y * 2}`
// "1 + 4 = 5"// 引用对象属性
let obj = {x: 1, y: 2};
`${obj.x + obj.y}`
// "3"
// 调用函数
function fn() {return "Hello World";
}`foo ${fn()} bar`
// foo Hello World bar

1.5. 注意点

  1. 如果在模板字符串中需要使用反引号,则前面要用**反斜杠**转义。
        let greeting = `\`Yo\`, World!`;greeting // '`Yo`, World!'
  1. 如果大括号中的值不是字符串,将按照一般的规则转为字符串。比如,大括号中是一个对象,将默认调用对象的toString方法。

  2. 如果模板字符串中的变量没有声明,将报错。

// 变量place没有声明
let msg = `Hello, ${place}`;
// 报错 ReferenceError: place is not defined
  1. 由于模板字符串的大括号内部,就是执行 JavaScript 代码,因此如果大括号内部是一个字符串,将会原样输出
        const greeting = `Hello ${'World'}`;greeting // 'Hello World'

1.6. 嵌套

详情见《ECMAScript 6 入门》阮一峰

1.7. 可写成函数

详情见《ECMAScript 6 入门》阮一峰

1.8. 练习

        const Jelly = {name: 'Jelly',date: '2022-08-06',todos: [{ name: 'Go to Store', completed: true },{ name: 'Watch the Movie', completed: false },{ name: 'Running', completed: true },]};function renderTodos(todos) {return (`<ul>${Jelly.todos.map(todo => `<li>${todo.name}${todo.completed ? '✔												

ES6_04- 模板字符串+标签模板字符串相关推荐

  1. ES6(二)——字符串模板、标签模板字符串、函数的默认参数、剩余参数、数组对象的展开语法、数值的表示、Symbol

    一.字符串模板基本使用 在ES6之前,如果我们想要将字符串和一些动态的变量(标识符)拼接到一起,是非常麻烦和丑陋的(ugly). ES6允许我们使用字符串模板来嵌入JS的变量或者表达式来进行拼接: 首 ...

  2. 目标检测标注工具(可自定义生成标签模板)

    点击查看项目源码 全新升级,整改为JAR包运行模式,既然是java项目自然支持各个系统 下载JAR包 JDK版本要求:JDK8-JDK10 上不去github的戳这 CSDN 0积分下载 运行方式 j ...

  3. 【ES9(2018)】String 扩展 标签模板里字符串转义

    放松对标签模板里字符串转义的限制, 遇到不合法的字符串转义返回undefined,并且从raw上可获取原字符串. ES9开始,模板字符串允许嵌套支持常见转义序列,移除对ECMAScript在带标签的模 ...

  4. C#读取Word模板替换相应的字符串(标签)生成新的Word

    在平常工作中,生成word的方式主要是C#读取html的模板文件处理之后保存为.doc文件,这样的好处是方便,快捷,能满足大部分的需求.不过有些特殊的需求并不能满足,如要生成的Word为一个表格,只是 ...

  5. ES6 标签模板与模板字符串

    模板字符串 模板字符串使用反引号 () 来代替普通字符串中的用双引号和单引号.模板字符串可以包含特定语法(${expression})的占位符.占位符中的表达式和周围的文本会一起传递给一个默认函数,该 ...

  6. ES6知识点整理模板字符串和标签模板的应用

    ES6 中对字符串进行了扩展,而模板字符串就是一个非常实用的方式,可以在html中实现与变量和方法的混编 之前我们手动拼接字符串的方式 let hello = 'Hello'; let html = ...

  7. es6模板字符串中标签模板作为参数时产生空元素的问题

    当模板字符串作为标签模板使用时,标签函数接受到的参数分别为(arr,-values) arr:模板字符串中所有那些没有变量替换的部分 -values:各个变量替换后的值 即 let a = 'Oh!' ...

  8. django html过滤,django templates模板过滤器过滤掉字符串含有的html标签

    django templates模板过滤器过滤掉字符串含有的html标签 在template用法:{{ myvar|striptags }} 如果myvar的字符串是"吾爱孟夫子,风流天下闻 ...

  9. vue模板字符串标签动态参数_Vue中的字符串模板的使用

    1.HTML模板和字符串模板 HTML模板:直接在HTML页面挂载的模板.(即非字符串模板) 非字符串模板:在单文件里用 指定的模板,换句话说,写在 html 中的就是非字符串模板. 字符串模板:在j ...

最新文章

  1. AndroidStudio 新建不同的Drawable文件夹
  2. Windows7 自动更新时遇到故障
  3. Linux下时间戳的换算方法
  4. 使用memcache的session入库
  5. 求正多边形的面积JAVA_第六章第三十六题(几何:正多边形的面积)(Geometry: area of a regular polygon)...
  6. 设置横坐标刻度_是不是快被Excel的时间刻度逼疯了,教你两招轻松解决
  7. JQuery之编写弹窗
  8. 一个会定时执行的方法
  9. Open3d之点云体素下采样
  10. GPS定位可以使用物联卡吗?信号稳定吗?
  11. 钉钉 e应用 mysql_钉钉E应用入门总结
  12. Oracle单实例数据库迁移到Oracle RAC 环境之(2)--实施篇
  13. java对外接口开发实例
  14. win7修复计算机 正常启动不了怎么办,Win7系统无法正常启动怎么办
  15. JS实现浏览器菜单命令
  16. 大一python期末总结
  17. 软件测试/测试开发丨Docker 容器技术与常用命令
  18. qt连接mdb_【原创】QT数据库学习和以连接Access为例
  19. 武汉市建筑物矢量数据(Shp格式+带高度)
  20. 【趣发现】形态各异的区块链和云计算

热门文章

  1. Exp4 恶意代码分析 20164314
  2. ArrayList 插入 1000w 条数据之后,我怀疑了 Java 虚拟机。。。
  3. 10G以太网光口与Aurora接口回环实验
  4. Android面试题:Handler
  5. RH124(12)----Linux中的软件管理
  6. vim:配置vundle插件
  7. python安全开发——内外网收集 Socket子域名DNS
  8. 关于Blender导出FBX动作失效的问题
  9. 102、基于51单片机手机无线充电器锂电池存电系统设计
  10. Redis07:redis的主从复制(原理与哨兵模式)、集群(搭建与它的优缺点)