你不可不知的 15 个 JavaScript 小贴士( 三 )


 const employee = {name: 'Eric',equipmentTraining: '',} if (!employee.equipmentTraining) {console.log('Not authorized to operate machinery');}14. 通过继承共享方法继承涉及在类之间共享属性或方法 。下面的示例中使用super标签实现继承,允许FlashCoupon中的构造函数访问Coupon中的父构造函数 。只需定义一次方法(在父类中),即可增强代码的可读性 。代码也变得更加模块化,因为继承器类可以专门用于给定任务 。
注意,顶部的代码框建立了父类Coupon,其属性和方法共享到FlashCoupon,如FlashCoupon在其最后一行调用getExpirationMessage方法时看到的那样 。
class Coupon {constructor(price, expiration) {this.price = price;this.expiration = expiration || 'Two Weeks';}getExpirationMessage() {return `This offer expires in ${this.expiration}`;}}export default Coupon; import Coupon from './extend'; class FlashCoupon extends Coupon {constructor(price, expiration) {super(price);this.expiration = expiration || 'two hours';}} const flash = new FlashCoupon(10);console.log(flash.getExpirationMessage());15. 使用数组方法编写较短的循环最后一个小贴士,我们将深入探讨数组优化的复杂性 。循环是创建和填充数组的常用方法 。但是,循环会导致代码杂乱且难以阅读 。
因此,我们可以使用数组方法来实现类似的效果,例如for只需若干代码行即可循环 。以下面的for循环为例 。
const prices = ['1.0', 'negotiable', '2.15']; const formattedPrices = [];for (let i = 0; i < prices.length; i++) {const price = parseFloat(prices[i]);if (price) {formattedPrices.push(price);}}console.log(formattedPrices);我们可以通过三行map方法实现与上面代码相同的效果 。此方法创建了一个大小相等的数组,只有price属性 。然后使用parseFloat获取价格的浮点值 。
const prices = ['1.0', '2.15'];const formattedPrices = prices.map(price => parseFloat(price));console.log(formattedPrices)总结对简洁代码的追求是一个持续的旅程,因为最佳实践会随着语言的不断发展而不断改善 。这个过程也是软件开发乐趣的一部分,学习最佳实践有助于开发人员真正掌握编程语言 。大家加油!




推荐阅读