欧阳约翰,更多分类以往好评文章,也整理了很多我的文档和教程资料。欢迎来到星和完美。面试时可参考考点复习。我希望我们能在一起。JavaScript是一种易于学习的编程语言,很容易编写可以运行并执行某些操作的程序。但是,很难写出一段干净的JavaScript代码。在本文中,我们将研究如何使我们的函数更加明确。对对象参数使用解构如果我们希望一个函数接受很多参数,那么应该使用对象。在此基础上,我们可以使用解构语法来提取我们需要的参数。例如,对于一个对象参数,我们可能会使用:constgreet=(obj)=>{return`${obj.greeting},${obj.firstName}${obj.lastName}`;}上面的语法,我们使用解构更优雅:constgreet=({greeting,firstName,lastName})=>{return`${greeting},${firstName}${lastName}`;}这样我们就可以少写很多重复的东西,命名会更清晰。给回调函数命名好的命名会让代码更容易阅读,回调函数的命名也是如此。例如下面这种不好的命名方式:constarr=[1,2,3].map(a=>a*2);我们可以像这样分隔名称:constdouble=a=>a*2;常量arr=[1,2,3].map(double);现在我们知道我们的回调函数实际上是用来对每个原始数组元素加倍的。使条件语句更具描述性您可以通过在您自己的函数的条件语句中编写条件表达式来使条件语句更具描述性。对于复杂的条件判断,我们可以单独使用函数来表达,这样会使条件语句更具描述性,比如下面的代码:if(score===100||remainingPlayers===1||remainingPlayers===0){quitGame();}当条件比较多的时候,我们可以用一个函数来表示:constwinnerExists=()=>{returnscore===100||剩余玩家===1||remainingPlayers===0}if(winnerExists()){quitGame();}这样,我们知道这些条件是检查游戏代码中是否有赢家的条件。在第一个例子中,括号中有一个很长的表达式,大多数人可能不知道它在计算什么。但是在第二个例子中,一旦我们把它放在一个具名函数中,我们就大致知道它在判断什么了。在条件条件中使用命名函数比使用一堆布尔表达式要简洁得多。将switch语句换成Map或Object由于switch语句很长,容易出错。因此,如果可能,我们应该用更短的代码替换它们。许多switch语句可以用map或object代替。例如,如果我们有以下switch语句:constgetValue=(prop)=>{switch(prop){case'a':{return1;}案例'b':{返回2;}case'c':{返回3;}}}constval=getValue('a');我们可以像这样用对象或映射替换它:constobj={a:1,b:2,c:3}constval=obj['a'];如我们所见,switch语法很长。我们需要用多个return语句嵌套多个块,只是为了获取给定prop值的返回值。不用对象,我们只需要一个对象:constobj={a:1,b:2,c:3}使用对象的另一个好处是键不必是有效的标识符符号,这增加了更多的灵活性。我们也可以用map替换对象,像这样:constmap=newMap([['a',1],['b',2],['c',3]])constval=map.get('a')如我们所见,使用Map时代码也短得多。我们传递一个数组,数组中的每一项都包含一个键和一个值。然后我们只使用Map实例的get方法从键中获取值。Mapoverobjects的一个好处是我们可以使用数字、布尔值或其他类似对象的值作为键。对象只能有字符串或符号作为键。总结使用解构语法可以使对象参数更清晰、更短。这样,可以选择将属性作为变量进行访问。通过将条件表达式放在其自己的命名函数中,可以使条件表达式更具描述性。另外,我们应该给回调函数起一个名字,以便于阅读代码。最后,switch语句应尽可能替换为Map和Object。代码部署后可能存在的bug,无法实时获知。事后为了解决这些bug,花费了大量的时间在日志调试上。顺便推荐一个好用的bug监控工具Fundebug。原文:https://levelup.gitconnected....每周更新交流文章。可以微信搜索“大千世界”阅读即时更新(比博文早一两篇)。githubhttps://github.com/qq449245884/xiaozhi已经收录了,整理了很多我的文档。欢迎加星和改进。可以参考考点面试。还有关注公众号,后台可以看到福利,你懂的。
