ES6(ECMAScript 6)新特性之模板字符串用法分析

发布时间 - 2026-01-11 00:28:36    点击率:

本文实例讲述了ES6(ECMAScript 6)新特性之模板字符串用法。分享给大家供大家参考,具体如下:

ES6引入了一种新型的字符串字面量语法,我们称之为模板字符串(template strings)。除了使用反撇号字符 ` 代替普通字符串的引号 ' 或 " 外,它们看起来与普通字符串并无二致。在最简单的情况下,它们与普通字符串的表现一致:

context.fillText(`Ceci n'est pas une cha?ne.`, x, y);

但我们不能说:“原来只是被反撇号括起来的普通字符串啊”。模板字符串为JavaScript提供了简单的字符串插值功能,从此以后,你可以通过一种更加美观、更加方便的方式向字符串中插值了。这在Java和C#中早已经有了,不用再用 + 符号连接字符串,用起来很方便~

模板字符串的使用方式成千上万,但最让我暖心的是将其应用于毫不起眼的错误消息提示:

function authorize(user, action) {
  if (!user.hasPrivilege(action)) {
    throw new Error(
    `用户 ${user.name} 未被授权执行 ${action} 操作。`);
  }
}

在这个示例中,${user.name}${action} 被称为模板占位符,JavaScript将把user.name和action的值插入到最终生成的字符串中,例如:用户jorendorff未被授权打冰球。(这是真的,我还没有获得冰球许可证。)

到目前为止,我们所了解到的仅仅是比+运算符更优雅的语法,下面是你可能期待的一些特性细节:

模板占位符中的代码可以是任意JavaScript表达式,所以函数调用、算数运算等这些都可以作为占位符使用,你甚至可以在一个模板字符串中嵌套另一个,我称之为模板套构(template inception)。

如果这两个值都不是字符串,可以按照常规将其转换为字符串。例如:如果action是一个对象,将会调用它的.toString()方法将其转换为字符串值。

如果你需要在模板字符串中书写反撇号,你必须使用反斜杠将其转义:`\``等价于"`"。

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

与普通字符串不同的是,模板字符串可以多行书写:

$("#warning").html(`
  <h1>小心!>/h1>
  <p>未经授权打冰球可能受罚
   将近${maxPenalty}分钟。</p>`);

模板字符串中所有的空格、新行、缩进,都会原样输出在生成的字符串中。

希望本文所述对大家ECMAScript程序设计有所帮助。


# ES6  # ECMAScript  # 6  # 新特性  # 模板字符串  # 详解ECMAScript2019/ES10新属性  # 详解ECMAScript typeof用法  # JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档  # ECMAScript6变量的解构赋值实例详解  # 详解ECMAScript6入门--Class对象  # 2022发布ECMAScript新特性盘点  # 将其  # 的是  # 如果你  # 转换为  # 未被  # 称之为  # 是一个  # 这是  # 插值  # 让我  # 我还  # 在这个  # 你可以  # 将会  # 你要  # 这两个  # 给大家  # 仅仅是  # 被称为  # 你都 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  如何在七牛云存储上搭建网站并设置自定义域名?  Android Socket接口实现即时通讯实例代码  如何在香港免费服务器上快速搭建网站?  Laravel如何实现用户注册和登录?(Auth脚手架指南)  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  如何在IIS7中新建站点?详细步骤解析  如何在Windows环境下新建FTP站点并设置权限?  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  Laravel中的withCount方法怎么高效统计关联模型数量  如何在景安云服务器上绑定域名并配置虚拟主机?  android nfc常用标签读取总结  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  微信小程序制作网站有哪些,微信小程序需要做网站吗?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  如何在Tomcat中配置并部署网站项目?  如何挑选高效建站主机与优质域名?  如何正确下载安装西数主机建站助手?  如何快速搭建个人网站并优化SEO?  音乐网站服务器如何优化API响应速度?  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  JavaScript如何实现路由_前端路由原理是什么  香港服务器租用每月最低只需15元?  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  php485函数参数是什么意思_php485各参数详细说明【介绍】  QQ浏览器网页版登录入口 个人中心在线进入  html如何与html链接_实现多个HTML页面互相链接【互相】  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  Internet Explorer官网直接进入 IE浏览器在线体验版网址  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  Laravel如何配置和使用缓存?(Redis代码示例)  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  深圳网站制作的公司有哪些,dido官方网站?  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】