如果你想给专业开发人员留下深刻印象,你会怎么做?很简单:用简单的逻辑和尽可能少的代码行解决复杂的问题。随着ES6箭头函数的引入,可以创建看起来优雅而简单的单行代码。在今天的文章中,我将向您介绍11种罕见但功能强大的单线。现在,准备好,让我们开始吧!1.获取字符串中的字符个数获取字符个数是一个实用的实用工具,在很多情况下都有用,我们可以用它来获取空格个数和后面的单词个数,或者这个可以用来在分隔符的字符串计数中获取一定数量的单词。constcharacterCount=(str,char)=>str.split(char).length-1思路很简单,我们使用传入的参数char拆分字符串,得到返回数组的长度。由于每次拆分字符串,都比拆分器多一个;所以减去1,我们有一个characterCount单行。2.检查对象是否为空检查对象是否为空其实比看起来要困难得多,即使对象为空,每次检查对象是否等于{}都会返回false。幸运的是,下面的一行代码正是我们想要的。constisEmpty=obj=>Reflect.ownKeys(obj).length===0&&obj.constructor===Object在这一行中,我们检查对象的键长度是否等于0,以及传递的参数是否为实际的目的。3.在执行前等待一段时间在这一行中,我们将用一些异步编程来弄脏我们的代码。思路很简单,在运行代码的时候,如果要等待一定的时间,这里是等待一行:constwait=async(milliseconds)=>newPromise((resolve)=>setTimeout(resolve,毫秒));whilewait在一行中,我们创建了一个承诺,并在给定时间后使用setTimeout函数解决它。4.获取两个日期之间的天差在开发Web应用程序时,日期通常是最容易实现的部分,因为有很多容易计算错误的概念。这是一个强大的单行代码,用于计算两个日期之间的天数差异。但还有更多,就像我所做的那样,您可以创建自己的单行代码来计算月、年差异等。单行代码背后的逻辑constdaysBetween=(date1,date2)=>Math.ceil(Math.abs(date1-date2)/(1000*60*60*24))很容易理解。当两个日期相减时,返回值是以毫秒为单位的差值,要将毫秒转换为天,我们必须将它除以毫秒、秒、分钟和小时。5.重定向到另一个URL如果你曾经创建过一个真实的网站,我相信你已经遇到过身份验证逻辑。例如,非管理员用户不应该能够访问/admin路由。如果用户尝试,则您必须将他们重定向到另一个URL。这个单行正是我上面提到的情况,但我认为你可以找到更多的用例。constredirect=url=>location.href=urllocation是全局window对象的一个??方法,设置href属性的行为与用户单击链接一样。6.检查您的设备是否支持触控随着越来越多的设备可以连接到互联网,创建响应式网站的需求也在增加。20年前,开发人员应该考虑网站的桌面版本,但今天超过50%的网络流量来自触摸移动设备。因此,根据设备的触摸支持采取一些行动是一个非常重要的概念。consttouchSupported=()=>('ontouchstart'inwindow||DocumentTouch&&documentinstanceofDocumentTouch)在这一行中,我们检查文档是否支持touchstart事件。7.在元素后插入HTML字符串在开发Web应用程序时,使用JavaScript来更新DOM是很常见的。有一些基本的方法可以完成工作,但是,当事情变得复杂时,就很难克服。这是一种在HTML元素之后立即注入HTML字符串的单行代码。经过几分钟的思考和谷歌搜索,我相信您可以找到这个单行本的以前版本。constinsertHTMLAfter=(html,el)=>el.insertAdjacentHTML('afterend',html)8.随机排列数组开发中对一组数据进行Shuffle是一种很常见的情况,随时都会遇到。不幸的是,JavaScript没有内置数组的shuffle方法。然而,这里有一个shuffleone-liner,你可以每天使用:constshuffle=arr=>arr.sort(()=>0.5-Math.random())它使用了数组的排序方式,而前面的数组的元素在之前或之后随机排序。9.获取网页上选中的文本浏览器在全局窗口对象上有一个名为getSelection的内置方法。使用此方法,您可以创建一行返回网页上突出显示或选定的文本。constgetSelectedText=()=>window.getSelection().toString()10.获取随机的布尔值在开发的时候,尤其是在写游戏代码的时候,有时候我们想要随机的进行动作。在这些情况下,下面的单行代码会派上用场。constgetRandomBoolean=()=>Math.random()>=0.5上面的一行有50/50的机会返回true或false。因为产生大于0.5的随机数的概率等于变小的概率。但是,例如,如果您想获得一个概率为70%的随机布尔值,那么您可以简单地将0.5更改为0.7,依此类推。11.计算数组的平均值计算数组平均值的方法有很多种。但是逻辑都是一样的,我们必须得到数组的总和及其长度;然后,平均值由除法给出。constaverage=(arr)=>arr.reduce((a,b)=>a+b)/arr.length在对单行进行平均时,我们使用reduce来获取一行中数组的总和,而不是使用a环形。然后我们将它除以数组长度,这是一个数组平均值。总结现在,我想你知道11个简单但功能强大的JavaScript单行代码。之所以尽量选择不那么流行和鲜为人知的技术,主要是希望它能帮助大家学习新的东西。那些我们每天都在使用的东西,我想你已经知道了。最后,感谢您的阅读。如果喜欢,觉得有用,记得点赞关注我哦。如果你对这篇文章有什么想说的,请在留言区告诉我,我们明天见。
