JS冷知识之不起眼但有用的String.raw方法

下面是关于JS中String.raw方法的详细讲解。

String.raw方法是什么

String.raw 是一个 ES6 引入的模板字符串的标签函数(tagged template)。当标签函数使用在模板字符串上时,该模板字符串中所有的转义字符都不会被转义,而是作为字符串的普通字符被输出。

用法示例

下面我们通过两个实际的示例来说明 String.raw 方法的使用。

示例一

在平常的开发中,我们会使用 JSON.stringify 方法将一个 JavaScript 对象序列化成为 JSON 字符串。但是,由于 JSON 字符串中的特殊字符都需要进行转义,这样会给代码的可读性带来一定的问题,而且转义字符的填写也容易出错。这时候 String.raw 方法就派上用场了。

const obj = {
  name: '张三',
  hobby: '打篮球'
}

const jsonStr = String.raw`${JSON.stringify(obj)}`
console.log(jsonStr)
// 输出结果:
// {"name":"张三","hobby":"打篮球"}

在这个示例中,我们使用 String.raw 将 JSON 字符串的特殊字符全部原样输出了,不需要我们再通过手工填写转义字符来进行处理了。

示例二

在一些场景下,我们需要将类似于二进制等的数据转换成十六进制的字符串。这时候,我们就可以使用 String.raw 来很方便地实现这个功能。

const arr = new Uint8Array([0x01, 0x02, 0x03, 0xF4, 0xE5, 0xD6])
const hexStr = String.raw`${arr}`
console.log(hexStr)
// 输出结果:
// 010203f4e5d6

在这个示例中,我们将一个 Uint8Array 数组转换成了一个十六进制的字符串,String.raw 方法自动地帮我们去掉了每个字节之间的空格,并且将十六进制的每个字符都打印出来。

总之,String.raw 方法虽然看起来并不太起眼,但是在一些特定的场景下却可以起到很大的作用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS冷知识之不起眼但有用的String.raw方法 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • vue.js云存储实现图片上传功能

    下面是”vue.js云存储实现图片上传功能”的完整攻略,具体内容如下: 1. 准备工作 在开始实现图片上传功能之前,我们需要进行以下准备工作: 1.1. 创建云存储账号 首先,我们需要去云存储厂商处创建一个账号。以阿里云为例,我们可以参考阿里云对象存储 OSS 快速入门文档进行操作。 1.2. 引入第三方工具库 在实现图片上传功能时,我们通常会使用一些第三方…

    JavaScript 2023年6月11日
    00
  • 使用JQUERY Tabs插件宿主IFRAMES

    使用JQUERY Tabs插件宿主IFRAMES是一种常见的网页开发技巧,可以实现在同一页面中切换不同的网页内容而不用刷新整个页面,提高用户的操作体验。下面是使用JQUERY Tabs插件宿主IFRAMES的完整攻略及示例说明。 下载和引入JQUERY库和JQUERY Tabs插件 首先,需要从官方网站下载最新版本的JQUERY库和JQUERY Tabs插件…

    JavaScript 2023年6月10日
    00
  • 开发跨浏览器的JavaScript方法说明第2/2页

    开发跨浏览器的JavaScript方法说明 在开发JavaScript应用程序时,我们往往需要编写跨浏览器的代码,确保在不同的浏览器中运行结果一致。 下面是一些跨浏览器JavaScript开发中常用的技巧和工具: 1. 另一种检测浏览器的方法 通常我们会使用 navigator.userAgent 来检测浏览器类型和版本。但是有些浏览器会伪造这个信息,导致检…

    JavaScript 2023年6月10日
    00
  • JavaScript截取指定长度字符串点击可以展开全部代码

    下面是详细讲解“JavaScript截取指定长度字符串点击可以展开全部代码”的完整攻略。 1. 需求分析 在网页上展示代码时,为了节约页面空间,通常需要对代码进行截取,只显示部分内容。但是,当用户需要查看完整的代码时,需要提供一个展开全文的功能。因此,我们需要使用JavaScript截取指定长度的字符串,并且在用户点击时展开全部字符串。 2. 解决方案 2.…

    JavaScript 2023年5月28日
    00
  • vue-cli4项目开启eslint保存时自动格式问题

    下面是“vue-cli4项目开启eslint保存时自动格式问题”的完整攻略。 1. 安装必要依赖 首先,我们需要安装一些必要的依赖,以支持Eslint的自动格式化功能。具体操作如下: 安装Eslint相关依赖 npm install eslint –save-dev npm install eslint-plugin-vue –save-dev npm …

    JavaScript 2023年6月10日
    00
  • js实现3D图片展示效果

    下面是“js实现3D图片展示效果”的完整攻略: 一、准备工作 在html文件中引入three.js和OrbitControls.js库,以便在页面中使用Three.js和控制相机的插件。 <script src="https://cdn.jsdelivr.net/npm/three@0.130.1/build/three.min.js&quo…

    JavaScript 2023年6月11日
    00
  • js实现文件上传表单域美化特效

    下面是“js实现文件上传表单域美化特效”的完整攻略: 1. 简介 在网页中,文件上传表单域通常都比较难看,这时候我们可以用JS来美化一下。通过JS操作DOM元素,使文件上传表单域看起来更加美观。在本篇攻略中,我们将使用两个示例来说明如何用JS实现文件上传表单域美化特效。 2. 示例1 2.1 HTML结构 <div class="file-u…

    JavaScript 2023年5月27日
    00
  • 一文带你理解JavaScript中的函数式编程

    “一文带你理解JavaScript中的函数式编程”的完整攻略 什么是函数式编程? 函数式编程是一种编程范式,它将计算机程序看作一系列数学函数的组合,避免使用共享状态和可变数据,通过数据不可变和函数无副作用的特性实现函数的组合和复用。JavaScript原生支持函数式编程,在近年来的JavaScript开发中也越来越普遍。 函数式编程的特点 函数是一等公民:函…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部