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 相关文章推荐
兼容多浏览器的字幕特效Marquee的通用js类
Jul 20 Javascript
Jquery 基础学习笔记
May 29 Javascript
Jquery Validate 正则表达式实用验证代码大全
Aug 23 Javascript
jQuery oLoader实现的加载图片和页面效果
Mar 14 Javascript
详解JavaScript逻辑And运算符
Dec 04 Javascript
详解javascript实现瀑布流列式布局
Jan 29 Javascript
详解在Vue中如何使用axios跨域访问数据
Jul 07 Javascript
用node-webkit把web应用打包成桌面应用(windows环境)
Feb 01 Javascript
微信小程序实现收货地址左滑删除
Nov 18 Javascript
微信小程序sessionid不一致问题解决
Aug 30 Javascript
layui table去掉右侧滑动条的实现方法
Sep 05 Javascript
vue如何搭建多页面多系统应用
Jun 17 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中date()日期函数有关参数整理
2011/07/19 PHP
域名和cookie问题(域名后缀)
2012/10/10 PHP
cakephp打印sql语句的方法
2015/02/13 PHP
php动态绑定变量的用法
2015/06/16 PHP
PHP实现多文件上传的方法
2015/07/08 PHP
非常有用的9个PHP代码片段
2016/04/06 PHP
php实现商城购物车的思路和源码分析
2020/07/23 PHP
使用户点击后退按钮使效三行代码
2007/07/07 Javascript
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
jQuery把表单元素变为json对象
2013/11/06 Javascript
JS只能输入正整数的简单实例
2016/10/07 Javascript
KnockoutJS 3.X API 第四章之表单value绑定
2016/10/10 Javascript
bootstrap flask登录页面编写实例
2016/11/01 Javascript
JavaScript实现图片瀑布流和底部刷新
2017/01/02 Javascript
JavaScript中错误正确处理方式小结你用对了吗
2017/10/10 Javascript
详解ES6通过WeakMap解决内存泄漏问题
2018/03/09 Javascript
react同构实践之实现自己的同构模板
2019/03/13 Javascript
JS中的const命令你真懂它吗
2020/03/08 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
2020/06/02 Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
2020/06/24 Javascript
Vue实现计算器计算效果
2020/08/17 Javascript
[52:02]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第二场 2月26日
2021/03/11 DOTA
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
Python设计模式之迭代器模式原理与用法实例分析
2019/01/10 Python
html5之Canvas路径绘图、坐标变换应用实例
2012/12/26 HTML / CSS
html5 viewport使用方法示例详解
2013/12/02 HTML / CSS
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
澳大利亚领先的孕妇服装品牌:Mamaway
2018/08/14 全球购物
台湾专柜女包:KINAZ
2019/12/26 全球购物
怎么样写好简历中的自我评价
2013/10/25 职场文书
四风问题自查自纠工作情况报告
2014/10/28 职场文书
2014年计划生育协会工作总结
2014/11/14 职场文书
在校生证明
2015/06/17 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
Java反应式框架Reactor中的Mono和Flux
2021/07/25 Java/Android