共计 1810 个字符,预计需要花费 5 分钟才能阅读完成。
前言
如果有这样一个需要:要求将给定的一个文件门路 D:\bianchengsanmei\blogs\categories\JavaScript
在页面展现进去。
最根本的实现办法可能是上面这个:
<body>
<div id = "container"></div>
</body>
const filePath = "D:\bianchengsanmei\blogs\categories\JavaScript";
document.querySelector("#container").innerText = filePath;
如果真能这么简略就实现的话,那我这篇文章到这里就完结了,这是要写个寂寞吗?
完结是不可能完结的,不信,你看看输入后果:
显然,咱们很多时候会遗记有 本义符 这回事。
因为在 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 个字符,// 任何类型的本义模式都会生效,保留原样输入,不信你试试.length
let 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;
正确显示:
能够看到,应用 String.raw 能够原汁原味的输入冀望后果,再也不会因为转义字符的起因导致各种预期之外的后果。
总结
咱们能够应用 String.raw 来保障模板字符的输入后果是原始值。
~
~ 本文完,感激浏览!
~
学习乏味的常识,结识乏味的敌人,塑造乏味的灵魂!
大家好,我是〖编程三昧〗的作者 隐逸王,我的公众号是『编程三昧』,欢送关注,心愿大家多多指教!
你来,怀揣冀望,我有墨香相迎!你归,无论得失,唯以余韵相赠!
常识与技能并重,内力和外功兼修,实践和实际两手都要抓、两手都要硬!