JS推荐实践

1、用全局js常量代替魔法数字

在存量的老代码中往往能见到这种风格的代码:

function execute(params) {
  switch (params) {
    case '10':
      console.log('执行10逻辑')
      break
    case '20':
      console.log('执行20逻辑')
      break
    case '30':
      console.log('执行30逻辑')
      break
    default:
      break
  }
}

execute('10')

其中所谓的10、20、30往往取值与某个明确的数据字典key,如果没有注释,代码的可读性非常差,推荐使用js常量模拟枚举的效果。
如下,创建statusConst.js

const statusConst = Object.freeze({
  goodStatus: '10', // 优秀状态
  normalStatus: '20', // 正常状态
  badStatus: '30' // 异常状态
})

export {
  statusConst
}

在需要的地方进行引入,将原来的魔法数字改造成:

import { statusConst } from "./statusConst.js"
function execute2(params) {
  switch (params) {
    case statusConst.goodStatus:
      console.log('执行10逻辑')
      break
    case statusConst.normalStatus:
      console.log('执行20逻辑')
      break
    case statusConst.badStatus:
      console.log('执行30逻辑')
      break
    default:
      break
  }
}
console.log('执行execute2');
execute2(statusConst.goodStatus)

运行execute和execute2:

执行10逻辑
执行execute2
执行10逻辑

应用场景:所有根据数据字典KEY值进行动态校验或动态渲染的处都可以用JS常量代替魔法数字,提高代码的可读/可维护性。

2、运用 可选链运算符(?.)优雅判空

3、使用map()加join()从对象数组中获取提示信息

与Java的List流式操作类似

const userList = [
  {
    name: '毒敌大王',
    action: '尾后针'
  },
  {
    name: '黑风大王',
    action: '黑风之名'
  },
  {
    name: '二郎神',
    action: '令我欢喜'
  }
]

const allAction = userList.map(item => item.action).join(',')
console.log('allAction', allAction)

allAction 尾后针,黑风之名,令我欢喜
应用场景:前端校验对象数组,抽取某一属性组合进行提示
…持续更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

松树戈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值