傻大方


首页 > 潮·科技 > >

javascript|如何编写高质量 JavaScript 代码



按关键词阅读: 算法 JavaScript path

javascript|如何编写高质量 JavaScript 代码

文章图片


前段时间有一个叫做“人类高质量男性”的视频火了 , 相信很多同学都刷到过 。 所以今天给大家分享下 , 什么叫做“人类高质量代码” , 哈哈 , 开个玩笑 。
其实分享的都是一些自己平时总结的小技巧 , 算是抛砖引玉吧 , 希望能给大家带来一些启发和帮助 。
【javascript|如何编写高质量 JavaScript 代码】如何编写出高质量的 JavaScript 代码?我个人认为 , 如果要编写出高质量的 JavaScript 代码 , 可以从以下三个方面去考虑 。
分别是:易阅读的代码、高性能的代码、健壮性的代码 。 下面我将分别对这三个方面进行阐述 。
易阅读的代码
首先说一下 , 代码是写给自己或团队成员看的 , 良好的阅读方式是编写高质量代码的前提条件 。 这里总结了四点具体操作方式分享给大家 。
第一点:统一代码格式
不要一会这样写 , 一会那样写 , 尽量统一写法 , 下面举例 。
// badfunction foo(xy) {  return {    sum : x + y  ;function bar(m n){  let ret = m*n  return ret;// goodfunction foo(x y) {    //  适当的空格隔开 , 一般符号前不添加空格 , 符号后添加空格  return {    sum: x + y         //  拖尾逗号是合法的 , 简化了对象和数组添加或删除元素                       //  省略结束分号 , 当然需要知道如何规避风险function bar(m n) {  let ret = m * n  return ret

人为去约定代码格式 , 是很不方便的 , 所以可以借助一些工具进行自动格式转换 , 如:prettier 插件(https://prettier.io/) 。
第二点:去除魔术数字
魔术数字(magic number)是程式设计中所谓的直接写在程式码里的具体数值(如“10”“123”等以数字直接写出的值) 。 虽然程式作者写的时候自己能了解数值的意义 , 但对其他程式员而言 , 甚至作者本人经过一段时间后 , 都会很难理解这个数值的用途 。
// badsetTimeout(blastOff 86400000)document.onkeydown = function (ev) {  if (ev.keyCode === 13) {    // todos  // goodconst MILLISECONDS_IN_A_DAY = 86400000const ENTER_KEY = 13setTimeout(blastOff MILLISECONDS_IN_A_DAY)document.onkeydown = function (ev) {  if (ev.keyCode === ENTER_KEY) {    // todos  预览

当然还有魔术字符串也是像上面一样去处理 , 上面代码中的常量命名推荐采用下划线命名的方式 , 其他如变量、函数等推荐用驼峰进行命名 。
其实减少this的使用频率也是一样的道理 , 当代码中充斥着大量this的时候 , 我们往往很难知道它是谁 , 需要花费很多时间进行阅读 。
// badclass Foo {    foo() {        this.number = 100        this.el.onclick = function () {            this.className = \"active\"            // goodclass Foo {    foo() {        let context = this        context.number = 100        context.el.onclick = function () {            let el = this            el.className = \"active\"            第三点:单一功能原则无论是编写模块、类、还是函数都应该让他们各自都只有单一的功能 , 不要让他们做过多的事情 , 这样阅读起来会非常简单 , 扩展起来也会非常灵活 。

// badfunction copy(obj deep) {  if (deep) {    // 深拷贝   else {    // 浅拷贝  // goodfunction copy(obj) {  // 浅拷贝function deepCopy(obj) {  // 深拷贝

第四点:减少嵌套层级多层级的嵌套 , 如:条件嵌套、循环嵌套、回调嵌套等 , 对于代码阅读是非常不利的 , 所以应尽量减少嵌套的层级 。
像解决条件嵌套的问题 , 一般可采用卫语句(guard clause)的方式提前返回 , 从而减少嵌套 。
// badfunction foo() {  let result  if (isDead) {    result = deadAmount()   else {    if (isRet) {      result = retAmount()     else {      result = normalAmount()        return result// goodfunction foo() {  if (isDead) {    return deadAmount()    if (isRet) {    return retAmount()    return normalAmount()

除了卫语句外 , 通过还可以采用短路运算、条件运算符等进行条件语句的改写 。


稿源:(sharkie)

【傻大方】网址:http://www.shadafang.com/c/111495ca2021.html

标题:javascript|如何编写高质量 JavaScript 代码


上一篇:腾讯|字节跳动晒腾讯合作邮件为哪般?

下一篇:应用|微软宣布 To Do 应用从明年起不再支持旧版本跨设备同步