15个简单的JS编码标准让你的代码更整洁(小结)


Posted in Javascript onJuly 16, 2020

作者 | Daniel Anderson
本文最初发布于 Medium 网站,经原作者授权后翻译和分享。

编码标准可以帮助以下方面:

  • 保持代码一致
  • 易于阅读和理解
  • 易于维护

下面的编码标准是我对上述几点有帮助的看法。

1. 比较时使用 === 代替 ==

这很重要,因为JavaScript是一种动态语言,因此使用==可能会给您带来意想不到的结果,因为它允许类型不同。
Fail:

if (val == 2)

Pass:

if (val === 2)

2. 永远不要使用 var,使用 let 来代替

使用 let 将有助于避免 JavaScript 中各种 var 引起的作用域问题。
Fail:

var myVar = 10;

Pass:

let myVar = 10;

3. 使用 const 代替 let

这阻止了开发人员尝试更改不应该做的事情,并且确实有助于提高可读性。
Fail:

let VAT_PERCENT = 20;

Pass:

const VAT_PERCENT = 20;

4. 始终使用分号(;)

尽管这在 JavaScript 中是可选的,并不像其它语言一样需要分号作为语句终止符。但是使用 ; 有助于使代码保持一致。

Fail:

const VAT_PERCENT = 20;
let amount = 10
return addVat(amount, vatPercent)

Pass:

const vatPercent = 20;
let amount = 10;
return addVat(amount, vatPercent);

5. JavaScript中的命名约定

  • let 应该使用驼峰命名。
  • const 如果在文件的顶部使用大写的蛇形命名法。如果不在文件顶部,请使用驼峰命名。
  • class 应该是帕斯卡命名法:MyClass
  • functions 函数应该是驼峰命名法:myFunction

6. 拼接字符串时使用模板字符串

模板字符串中允许嵌入表达式。
Fail:

let fullName = firstName + " " + lastName;

Pass:

let fullName = `${firstName} ${lastName}`;

7. 尽可能使用ES6箭头函数

箭头函数是编写函数表达式的更简洁的语法。
Fail:

var multiply = function(a, b) {
 return a* b;
};

Pass:

const multiply = (a, b) => { return a * b};

8. 始终在控制结构周围使用大括号

所有控制结构都必须使用花括号(例如,if,else,for,do,while等),这样后期维护时,不容易出错。
Fail:

if (valid)
  doSomething();
if (amount > 100) 
  doSomething();
else if(amount > 200)
  doSomethingElse();

Pass:

if (valid) {
  doSomething();
}
if (amount > 100) {
  doSomething();
} 
else if(amount > 200) {
  doSomethingElse();
}

9. 确保大括号从同一行开始,中间有空格

Fail:

if (myNumber === 0)
{
  doSomething();
}

Pass:

if (myNumber === 0) {
  doSomething();
}

10. 尝试减少嵌套

if 内的 if 会变得混乱并且很难阅读。有时你可能无法解决问题,但是可以好好卡看看代码结构,看看是否可以改进。
Fail:

if (myNumber > 0) {
  if (myNumber > 100) {
       if (!hasDiscountAlready) {
           return addDiscountPercent(0);
       } else {
           return addDiscountPercent(10);
       }
  } else if (myNumber > 50) {
    if (hasDiscountAlready) {
       return addDiscountPercent(5);
    }
  } else {
    if (!hasDiscountAlready) {
      return addDiscountPercent(0);
    } else {
      return addDiscountPercent(1);
    }
  }
} else {
     error();
}

Pass:

if (myNumber <= 0) {
   return error;
}
if (!hasDiscountAlready) {
    return addDiscountPercent(0);
}
if (myNumber > 100) { 
    return addDiscountPercent(10);
}
if (myNumber > 50) { 
    return addDiscountPercent(5);
}
return addDiscountPercent(1);

通过上面的示例可以看出,减少嵌套之后,会变得容易阅读。

11. 尽可能使用默认参数

在 JavaScript 中,如果你在调用函数时没有传递参数,则它的值就是 undefined
Fail:

myFunction(a, b) {
 return a + b;
}

Pass:

myFunction(a = 0, b = 0) { 
 return a + b;
}

12. `Switch` 语句应使用 `break` 并具有 `default`

我通常会尝试不使用 switch 语句,但是你确实想使用它,请确保每个条件都 break ,并写了 defalut。

Fail:

switch (myNumber)
{
 case 10: 
 addDiscountPercent(0);
 case 20: 
 addDiscountPercent(2);
 case 30:
 addDiscountPercent(3);
}

Pass:

switch (myNumber)
{
  case 10: 
    addDiscountPercent(0);
    break;
  case 20: 
    addDiscountPercent(2);
    break;
  case 30:
    addDiscountPercent(3);
    break;
  default: 
    addDiscountPercent(0);
    break;
}

13. 不要使用通配符导入

Fail:

import * as Foo from './Foo';

Pass:

import Foo from './Foo';

14. 使用布尔值的快捷方式
Fail:

if (isValid === true)
if (isValid === false)

Pass:

if (isValid)
if (!isValid)

15. 尝试避免不必要的三元语句

Fail:

const boo = a ? a : b;

Pass:

const boo = a || b;

总结

任何语言的编码标准都可以真正帮助提高应用程序的可读性和可维护性。如果你在团队中工作,那么一件很难的事情就是强制执行编码标准。这里有一些建议可以帮助你:

  • 代码审查,逐行Pass代码。
  • 整理或使用某种代码分析器
  • 创建新内容时,让你们的一位高级开发人员初始化,其他开发人员可以使用该代码作为指导。

原文链接: https://medium.com/javascript-in-plain-english/19-simple-javascript-coding-standards-to-keep-your-code-clean-7422d6f9bc0

 到此这篇关于15个简单的JS编码标准让你的代码更整洁(小结)的文章就介绍到这了,更多相关JS编码标准内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
jcrop基本参数一览
Jul 16 Javascript
jquery实现点击展开列表同时隐藏其他列表
Aug 10 Javascript
12种JavaScript常用的MVC框架比较分析
Nov 16 Javascript
Angular2开发——组件规划篇
Mar 28 Javascript
JS触摸事件、手势事件详解
May 04 Javascript
js实现简单数字变动效果
Nov 06 Javascript
实现单层json按照key字母顺序排序的示例
Dec 06 Javascript
详解webpack 热更新优化
Sep 13 Javascript
详解如何制作并发布一个vue的组件的npm包
Nov 10 Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
Mar 01 Javascript
新手如何快速理解js异步编程
Jun 24 Javascript
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
Jun 05 Javascript
通过实例解析vuejs如何实现调试代码
Jul 16 #Javascript
详解js中的几种常用设计模式
Jul 16 #Javascript
JS寄快递地址智能解析的实现代码
Jul 16 #Javascript
详解js中的原型,原型对象,原型链
Jul 16 #Javascript
详解Webpack4多页应用打包方案
Jul 16 #Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
Jul 15 #Javascript
微信小程序12行js代码自己写个滑块功能(推荐)
Jul 15 #Javascript
You might like
一棵php的类树(支持无限分类)
2006/10/09 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
2017/08/18 PHP
Thinkphp 5.0实现微信企业付款到零钱
2018/09/30 PHP
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
JQuery从头学起第一讲
2010/07/04 Javascript
基于jQuery试卷自动排版系统
2010/07/18 Javascript
MultiSelect左右选择控件的设计与实现介绍
2013/06/08 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
2015/03/13 Javascript
js实现顶部可折叠的菜单工具栏效果实例
2015/05/09 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
2015/08/13 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
2015/09/10 Javascript
JavaScript ES5标准中新增的Array方法
2016/06/28 Javascript
Angular.Js中ng-include指令的使用与实现
2017/05/07 Javascript
详解Next.js页面渲染的优化方案
2019/01/27 Javascript
解决layui的form里的元素进行动态生成,验证失效的问题
2019/09/14 Javascript
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
2020/08/07 Javascript
解决vue2中使用elementUi打包报错的问题
2020/09/22 Javascript
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
python里将list中元素依次向前移动一位
2014/09/12 Python
使用Pyrex来扩展和加速Python程序的教程
2015/04/13 Python
hmac模块生成加入了密钥的消息摘要详解
2018/01/11 Python
python+pyqt5编写md5生成器
2019/03/18 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
2019/11/11 Python
从numpy数组中取出满足条件的元素示例
2019/11/26 Python
python文件和文件夹复制函数
2020/02/07 Python
python按照list中字典的某key去重的示例代码
2020/10/13 Python
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
国际花店:Pickup Flowers
2020/04/10 全球购物
小学教师事迹材料
2014/01/13 职场文书
大学生通用个人的自我评价
2014/02/10 职场文书
高中生班主任评语
2014/04/25 职场文书
暑期教师培训方案
2014/06/07 职场文书
单位个人查摆问题及整改措施
2014/10/28 职场文书
CI Games宣布《堕落之王2》使用虚幻引擎5制作 预计将于2023年正式发售
2022/04/11 其他游戏
python中mongodb包操作数据库
2022/04/19 Python