mileOfSunshine / blog

2 stars 0 forks source link

优雅的写JS #20

Open mileOfSunshine opened 4 years ago

mileOfSunshine commented 4 years ago
  1. 定义变量的时候指明类型,不然让解释器自己猜;

  2. 不要随意地改变变量的类型;

  3. 函数的返回类型应该是确定的

  4. 不要让代码暴露在全局作用域下;

  5. 不要滥用闭包,闭包嵌套越深,那么变量查找时间也就越长;

  6. 当全局变量频繁地被使用时,可以用一个局部变量缓存

  7. 避免使用 ==,如果确定了变量的类型,就没必要使用 ==;如果类型不确定,应手动做类型转换;用JSLint 约束;

  8. 三目运算符 代替简单的 if-else

  9. 善用连等

  10. 善用自增减

  11. 减少 魔数,给常量取名

  12. 使用箭头函数代替小函数

  13. 使用ES6的class

  14. 字符串拼接( `` )

  15. 块级作用域变量

mileOfSunshine commented 3 years ago

格式化日期

function dateFormat(date, divider = '') {
  const d = new Date(date)
  const yyyy = d.getFullYear()
  const mm = `0${d.getMonth() + 1}`.slice(-2)
  const dd = `0${d.getDate()}`.slice(-2)
  return `${yyyy}${divider}${mm}${divider}${dd}`
}

// 举例

dateFormat('2020/1/1') // => "20200101"

dateFormat('2020-1-1', '/') // => "2020/01/01"

dateFormat('2020/1/1', '-') // => "2020-01-01"
mileOfSunshine commented 3 years ago

6个实例详解如何把if-else代码重构成高质量代码

要点:

  1. 合并条件表达式
  2. 减少if-else嵌套
  3. 废除了临时变量,直接return返回
  4. 将条件反转使异常情况先退出,让正常流程维持在主干流程