当前位置: 首页 > Web前端 > JavaScript

认真的人一辈子都不会用的JavaScript方法总结(一)

时间:2023-03-27 15:20:38 JavaScript

前言如果有这样一个需求:给定一个文件路径D:\bianchengsanmei\blogs\categories\JavaScript,要求在页面上显示出来。最基本的实现方法可能是下面这样:#container").innerText=文件路径;如果能这么简单的实现,那我的文章就到此为止了。这是一个孤独的帖子吗?结束是不可能结束的,不信,你看看输出:显然,我们经常忘记转义字符。因为在HTML网页中,>、<等字符具有特殊的含义,而有些字符在ASCII字符集中是没有定义的,所以需要使用转义字符串来表示。要正确显示,应该这样写:constfilePath="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后面的字符不是换行符,\andn是两个不同的字符String.raw`Hi\u000A!`;//"Hi\\u000A!",同上,这里会得到6个字符\,u,0,0,0,A,//Anytypeofescapeform会失效,输出保持原样,不信你试试。lengthletname="Bob";String.raw`Hi\n${name}!`;//"Hi\\nBob!",insideInterpolationexpressionsstillwork//通常,您可能不需要将String.raw()作为函数调用。//但要模拟`t${0}e${1}s${2}t`,您可以这样做:String.raw({raw:'test'},0,1,2);//'t0e1s2t'//注意这个测试,传入一个字符串和一个类似数组的对象//下面这个函数等价于`foo${2+3}bar${'Java'+'Script'}baz`。String.raw({raw:['foo','bar','baz']},2+3,'Java'+'Script');//'foo5barJavaScriptbaz'实现需求我们使用String.raw来实现文章开头的需求:constfilePath=String.raw`D:\bianchengsanmei\blogs\categories\JavaScript`;document.querySelector("#container").innerText=文件路径;正确显示:可以看到可以使用String.raw输出原来期望的结果,不会再因为转义字符导致各种意想不到的结果。总结我们可以使用String.raw来保证模板字符输出的是原始值。~~本文到此结束,感谢阅读!~学习有趣的知识,认识有趣的朋友,塑造有趣的灵魂!大家好,我是〖编程三昧〗的作者王隐,我的公众号是《编程三昧》,欢迎关注,希望大家多多指教!你来,怀揣期待,我以墨香迎接你!您归来,不分得失,只送回味!知识与技能并重,内功与外功并重,理论与实践两手抓,两手都要用力!