来源:Pexels1.编写构造函数时,将方法添加到.这部分有点新。(请记住,这不适用于类,因为类已经将方法附加到它们的原型上。)下面是构造函数的示例:functionFrog(name,gender){this.name=namethis.gender=gender}Frog.prototype。leap=function(feet){console.log(`Leaping${feet}ftintotheair`)}为什么不像下面的例子那样直接附加leap方法呢?functionFrog(name,gender){this.name=namethis.gender=genderthis.leap=function(feet){console.log(`Leaping${feet}ftintotheair`)}}当直接在原型中添加方法时,它们会被共享在构造函数创建的所有实例中。换句话说,使用前面的示例,如果您创建了三个独立的Frog(来自this.leap=function(){...}),那么您最终会创建三个独立的副本。这是一个问题,因为leap方法总是保持不变并且不需要在实例上创建它们自己的副本。您最终会导致本可以避免的性能下降。this.name和this.gender属性需要在实例上定义,因为在现实生活中青蛙可能有自己的名字和性别,所以它们是在实例级别创建的。这是使用此方法的流行请求包的示例(在GitHub上)。2、使用TypeScriptTypeScript不仅可以为类型安全提供强有力的防御,还有助于防止错误,在JavaScript社区中得到了广泛的应用。使用TypeScript使编译器能够检测潜在错误并在代码运行之前显示警告。但这远不能解释为什么TypeScript可以在任何情况下使用。TypeScript最好的事情之一是它允许在主流浏览器支持它们之前使用JavaScript中的新功能,因为这些功能被编译到早期的JavaScript版本中,因此可以在旧浏览器中运行。3.编写测试如果你要认真对待一个项目,你必须使用测试,这样应用程序才能更可预测,更不容易出错,并且可以灵活应对未来的变化。换句话说,如果您要创建一个经得起时间考验的项目,没有比在整个代码中构建测试更好的方法了。您对代码进行的测试越多,您对它投入生产时的信心就越大。测试最好的部分是什么?这是捕获错误的能力,因此它们永远不会出现——有人不想要这种能力吗?我确定我想要。这就是我在项目中编写单元测试的原因。资料来源:Pexels4。使用JSON.parse或JSON.stringify时,一定要考虑使用try/catch在JavaScript中,当将JSON作为输入传递给JSON.parse时,第一个参数需要格式正确的JSON。如果格式不正确,将显示JSON解析错误。JSON解析错误的危险在于接受无效的JSON会使应用程序崩溃。最近我们的一个web项目失败了,因为另一个内置包没有在try/catch中安装JSON.parse。这最终导致网页失败,并且由于JavaScript运行时被破坏,除非内置包修复它,否则无法修复该错误。SyntaxError:Unexpectedtoken}inJSONatposition107不应总是期望有效的JSON输入,因为它会收到奇怪的字符,如“>”,这在今天很常见。5.使用常规的.type属性来区分这是一个很棒且被广泛使用的方法。React开发人员可能每天都会看到这种做法,尤其是在使用Redux时。使用类似的方法也使开发过程变得异常简单,因为它甚至可以很好地记录自己。functioncreateSpecies(type,name,gender){if(type==='frog'){returncreateFrog(name,gender)}elseif(type==='human'){returncreateHuman(name,gender)}elseif(type==undefined){thrownewError('Cannotcreateaspecieswithanunknowntype')}}constmyNewFrog=createSpecies('frog','sally','female')6.使用工厂函数(factoryfunction)如果你不知道什么是工厂函数,那么它就是一个返回一个对象的函数(它既不是类也不是构造函数)。有了这个简单的概念,就可以利用JavaScript及其特性来创建功能强大且健壮的应用程序。要知道,当一个函数被new关键字调用时,这个函数就不再是工厂函数了。为什么要使用工厂函数?可以使用工厂函数轻松生成对象实例,而无需涉及类或new关键字。这本质上意味着它们最终被视为函数,即它们可用于组合对象、函数,甚至Promise函数。这表明可以混合和匹配工厂函数来创建工厂函数的升级版本,然后可以将其与其他函数或对象组合以创建更强大的工厂函数。可能性是无止境。考虑到这一点,将它与良好的编码实践结合起来,它就会开始大放异彩。下面是工厂函数的一个简单示例:最后,您将意识到工厂函数比类构造函数更可重用。这减少了代码大小、代码重构时间(因为工厂函数最终会返回任意对象)以及从一个代码到另一个代码的管理时间。资料来源:Pexels7。使函数尽可能简单众所周知,在JavaScript中,很可能会有同时做很多事情的大型函数。编程新手可能会发现这是一件好事——当我写了很多有效的代码时,我曾经对自己感觉很好。这对我来说非常重要,给了我很大的信心。毕竟它有效,我忘记了我的代码是多么冗长。天哪,当时真是太幼稚了。如果您想编写更易于维护、更简单且不易出错的代码,最好使其尽可能简短。代码越干净,隔离测试就越容易。如果您更喜欢函数式编程范例,这一点尤其重要。一个函数应该做一件事并且把它做好是常识。希望它对你有用,更好的JavaScript的最佳实践。
