下面是关于JS中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
方法虽然看起来并不太起眼,但是在一些特定的场景下却可以起到很大的作用。
本文链接:http://task.lmcjl.com/news/10126.html