Blogger Information
Blog 91
fans 0
comment 0
visits 77212
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
正经人一辈子都用不到的 JavaScript 方法总结 (一)
编程三昧
Original
851 people have browsed it

前言

假如有这样一个需求:要求将给定的一个文件路径 D:\bianchengsanmei\blogs\categories\JavaScript 在页面展示出来。

最基本的实现方法可能是下面这个:

<body>    <div id = "container"></div></body>
const filePath = "D:\bianchengsanmei\blogs\categories\JavaScript";document.querySelector("#container").innerText = filePath;

如果真能这么简单就实现的话,那我这篇文章到这里就结束了,这是要写个寂寞吗?

结束是不可能结束的,不信,你看看输出结果:

image-20210824204649951

显然,我们很多时候会忘记有转义符这回事。

因为在 HTML 网页里,像 >、<、 等字符是由特殊含义的,再加上有些字符在 ASCII 字符集中没有定义,因此需要使用转义字符串来表示。

要想正确显示,应该这么写:

const filePath = "D:\\bianchengsanmei\\blogs\\categories\\JavaScript";document.querySelector("#container").innerText = filePath;

转义符 + “\“ 表示的是字符串 \。

我今天写这篇文章的意思呢,就是推荐给大家另外一种实现方法。

String.raw 简介

String.raw() 是一个模板字符串的标签函数,用来获取一个模板字符串的原始字符串的,比如说,占位符(例如 ${foo})会被处理为它所代表的其他字符串,而转义字符(例如 \n)不会。

语法

String.raw(callSite, ...substitutions)String.raw`templateString`

参数

  • callSite    一个模板字符串的“调用点对象”。类似{ raw: [‘foo’, ‘bar’, ‘baz’] }。

  • …substitutions    任意个可选的参数,表示任意个内插表达式对应的值。

  • templateString    模板字符串,可包含占位符(${…})。

返回值

给定模板字符串的原始字符串。

使用示例

以下是一些关于 String.raw 的使用示例:

String.raw`Hi\n${2+3}!`;// 'Hi\\n5!',Hi 后面的字符不是换行符,\ 和 n 是两个不同的字符String.raw `Hi\u000A!`;// "Hi\\u000A!",同上,这里得到的会是 \、u、0、0、0、A 6个字符,// 任何类型的转义形式都会失效,保留原样输出,不信你试试.lengthlet name = "Bob";String.raw `Hi\n${name}!`;// "Hi\\nBob!",内插表达式还可以正常运行// 正常情况下,你也许不需要将 String.raw() 当作函数调用。// 但是为了模拟 `t${0}e${1}s${2}t` 你可以这样做:String.raw({ raw: 'test' }, 0, 1, 2); // 't0e1s2t'// 注意这个测试, 传入一个 string, 和一个类似数组的对象// 下面这个函数和 `foo${2 + 3}bar${'Java' + 'Script'}baz` 是相等的.String.raw({  raw: ['foo', 'bar', 'baz']}, 2 + 3, 'Java' + 'Script'); // 'foo5barJavaScriptbaz'

实现需求

我们使用 String.raw 来实现以下文章开头的需求:

const filePath = String.raw`D:\bianchengsanmei\blogs\categories\JavaScript`;document.querySelector("#container").innerText = filePath;

正确显示:

image-20210824211345755

可以看到,使用 String.raw 可以原汁原味的输出期望结果,再也不会因为转义字符的原因导致各种预期之外的结果。

总结

我们可以使用 String.raw 来保证模板字符的输出结果是原始值。

~

~本文完,感谢阅读!


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post