服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服务器之家 - 编程语言 - JavaScript - js教程 - 十个编写更简洁的 JavaScript 代码的技巧

十个编写更简洁的 JavaScript 代码的技巧

2022-08-29 20:39web前端开发 js教程

Javascript 是最常用的Javascript 是最常用的编程语言之一,超过 97% 的网站都在使用它。编程语言之一,超过 97% 的网站都在使用它。

近年来,随着许多框架的推出,涵盖了从后端、Web前端到跨平台移动应用程序,甚至游戏的方方面面,Javascript 的流行度达到了很高的水平。

十个编写更简洁的 JavaScript 代码的技巧

编写干净可读的代码是构建业务逻辑之后最重要的事情之一。根据我与多个组织、初创公司和项目合作的经验,我可以保证处理糟糕的代码是一场噩梦。它减慢了开发过程,延迟了发布,并使用它的开发人员感到沮丧。

因此,我们需要编写一些干净可读的代码,在今天的内容中,我将与你分享一些我编程干净代码的基本技巧,希望对你有所帮助。现在我们开始吧。

1. 变量名——保持它们的意义

你的变量名称应该能够清楚地解释其用途。此外,避免混淆首字母缩写词和难以发音的单词。我不知道我该如何强调这一点, 让我们看看下面的例子:

// Bad  const yyyymmdstr = moment().format("YYYY/MM/DD"); // Good const currentDate = moment().format("YYYY/MM/DD");

2. 变量名——保持可搜索

尽管有些文章会告诉你在可以使用单态形式时不要创建变量,但不应将其扩展为使用常量,这会使代码更难阅读和搜索。 此外,正确的做法是将它们存储在 const 变量中并使用 CONSTANT_CASE 来命名变量。

例如,查看以下代码段:

// What the heck is 86400000 for? setTimeout(blastOff, 86400000); // Declare them as capitalized named constants. const MILLISECONDS_PER_DAY = 60 * 60 * 24 * 1000; //86400000; setTimeout(blastOff, MILLISECONDS_PER_DAY);

3. 避免对变量进行心理映射

最好在 array.forEach() 中显式命名变量,而不是使用以后可能没有意义的简写。

// BAD
const locations = ["Austin", "New York", "San Francisco"];
locations.forEach(l => {
  doStuff();
  doSomeOtherStuff();
  // ...
  // ...
  // ...
  // Wait, what is `l` for again?
  dispatch(l);
});


// GOOD
const locations = ["Austin", "New York", "San Francisco"];
locations.forEach(location => {
  doStuff();
  doSomeOtherStuff();
  // ...
  // ...
  // ...
  dispatch(location);
});

4. 避免不必要的上下文

如果类或对象名称已经告诉你它代表什么,请不要再次将该信息添加到你的变量名称中。 在下面的示例中,由于我们已经知道,我们谈论的是 Car 或 paintCar,因此你无需在变量中再次提及上下文的Car。

// BAD const Car = { carMake: "Honda", carModel: "Accord", carColor: "Blue" }; function paintCar(car, color) { car.carColor = color;
} // GOOD const Car = { make: "Honda", model: "Accord", color: "Blue" }; function paintCar(car, color) { car.color = color;
}

5. 在你的函数中使用默认参数

避免在你的函数中使用短路或条件来保持更清洁。 更重要的是,请记住,你的函数只会为未定义的参数提供值, 默认值不会替换任何其他虚假值。

// BAD function createMicrobrewery(name) { const breweryName = name || "Hipster Brew Co."; // ... } // GOOD function createMicrobrewery(name = "Hipster Brew Co.") { // ... }

6. 明智地使用函数参数

根据经验,尽量将函数参数的数量限制在 2 个或最多 3 个。如果它需要这么多参数,则可能是你的函数做的太多了。 但是,如果仍然需要它,请使用 JavaScript 对象作为参数。 为了使函数期望的属性变得明显,可以使用 ES6 解构语法。

// BAD function createMenu(title, body, buttonText, cancellable) { // ... } createMenu("Foo", "Bar", "Baz", true); // GOOD  function createMenu({ title, body, buttonText, cancellable }) { // ... } createMenu({ title: "Foo", body: "Bar", buttonText: "Baz", cancellable: true });

7. 函数应该做一件事

不要忘记函数的作用——为你的代码添加模块化。 每个只执行一项任务的较小函数将确保你的代码易于编写、测试和理解。 永远不要为单个功能设置多个目标。

// BAD function emailClients(clients) { clients.forEach(client => { const clientRecord = database.lookup(client); if (clientRecord.isActive()) { email(client);
    }
  });
} // GOOD  function emailActiveClients(clients) { clients.filter(isActiveClient).forEach(email);
} function isActiveClient(client) { const clientRecord = database.lookup(client); return clientRecord.isActive();
}

8. 函数名——让它们有意义

确保编写函数的名称清楚地说明函数的作用。 模棱两可的函数名称意味着读者必须查看函数定义和逻辑才能理解他们的工作。

// BAD function addToDate(date, month) { // ... } const date = new Date(); // It's hard to tell from the function name what is added addToDate(date, 1); // GOOD function addMonthToDate(month, date) { // ... } const date = new Date(); addMonthToDate(1, date);

9. 避免重复代码——让代码更短更简洁

最痛苦的是多个代码部分中的一堆相同或相似的行。 我们都遇到过这样的场景。 这通常是因为某些逻辑在 2 个或更多地方的实现略有不同。 但是,想想如果有人在逻辑中发现错误会做的噩梦的,现在他们必须到处修改它。

10. 不要使用标志作为函数参数

为什么需要标志作为函数参数? 仅出于一个明显的原因,你的功能正在做多种事情。 从第 7 点开始,你就知道这是一种不好的做法。 所以,继续把你的功能一分为二。

// BAD function createFile(name, temp) { if (temp) { fs.create(`./temp/${name}`);
  } else { fs.create(name);
  }
} // GOOD function createFile(name) { fs.create(name);
} function createTempFile(name) { createFile(`./temp/${name}`);
}

总结

以上就是我跟你分享的关于我编写干净代码的基本技巧,希望这10个基本技巧可以帮助到你,如果你觉得有用的话,请记得点赞我,关注我,并将其分享给你的朋友,也许能够帮助到他。

原文地址:https://mp.weixin.qq.com/s?__biz=MjM5MDA2MTI1MA==&mid=2649131554&idx=2&sn=006d5357044f67b1ecc7fa43c5f4c0f2&chksm=be58ad8f892f24991622e4d612a7e24d5c135848c4ca97b49f5669c0dbd922c29f221a2e2fd8

延伸 · 阅读

精彩推荐
  • js教程Web Animations API实现一个精确计时的时钟示例

    Web Animations API实现一个精确计时的时钟示例

    这篇文章主要为大家介绍了Web Animations API实现一个精确计时的时钟示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加...

    前端修罗场6142022-07-30
  • js教程Deno :它比 Node.js 更好吗?

    Deno :它比 Node.js 更好吗?

    在本文中,我们将讨论 Deno 的创建原因以及它与 Node.js 相比的优缺点。还将对 Deno 的怪癖(quirks)和功能做一个实用概述,以便您决定它是否适合于您的下...

    编程界译6872022-03-07
  • js教程JavaScript设计模式之命令模式

    JavaScript设计模式之命令模式

    这篇文章主要介绍了JavaScript设计模式之命令模式,对设计模式感兴趣的同学,可以参考下...

    有梦想的咸鱼前端8112022-03-10
  • js教程CocosCreator骨骼动画之龙骨DragonBones

    CocosCreator骨骼动画之龙骨DragonBones

    这篇文章主要介绍了怎么在CocosCreator中使用骨骼动画龙骨DragonBones,对骨骼动画感兴趣的同学,可以试一下...

    gamedaybyday3432022-03-03
  • js教程JS实现页面侧边栏效果探究

    JS实现页面侧边栏效果探究

    这篇文章主要介绍了JS实现页面侧边栏效果探究,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以...

    行舟客5162021-12-29
  • js教程微信小程序授权登录的优雅处理方式

    微信小程序授权登录的优雅处理方式

    这篇文章主要给大家介绍了关于微信小程序授权登录的优雅处理方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值...

    FTD止水11642022-02-15
  • js教程如何利用JS检查元素是否在视口内

    如何利用JS检查元素是否在视口内

    这篇文章主要给大家介绍了关于如何利用JS检查元素是否在视口内的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考...

    冷石4612022-03-01
  • js教程js实现随机点名

    js实现随机点名

    这篇文章主要为大家详细介绍了js实现随机点名,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    搬砖大法10172022-01-04