1 按强类型风格写代码
- 定义变量时指明数据类型,例如使用
代替var num=0,str=''
方便了js解释器,同时也方便了阅读代码的人;var num,str
- 不要随意更改变量的数据类型
这样不仅需要解释器进行额外的类型装换处理,还会给阅读代码的人带来疑惑。如果真的需要改变类型,可以重新定义一个变量进行处理 - 函数返回值的类型是确定类型
尽量做到函数的返回值的类型一致,尽量避免
否则调用函数时可能还需要进行数据类型转换处理function test(){ if(...){ return ' ' }else{ return 1 } }
2 减少作用域查找
- 尽量不要将变量暴露在全局作用域
- 不要滥用闭包
3 尽量使用=== 来代替 ==
- == 会产生一些异常(如null == undefined,’ '== 0等情况,当然如果有意利用这这些特性的除外);
- 如果已经确定了数据类型,使用=== 完全可以替代 ==;
- 如果数据类型不一致,尽量对齐进行数据类型装换;
- 使用==在JSLint检查时无法通过;
4 合并表达式(执行效率更高)
- 使用三目运算符表示简单的ifelse语句
- 使用连等赋值;
- 自增/自减
5 减少魔数
假设有这样的一段代码
testFn('seller',34,false)
从这个函数调用来说,很难看出这些三个函数参数是什么意思,如果不去查看一下函数的源码,怕是很难理解。这样的意义不明的常量就被称为 魔数
如果将代码改成这样:
var seller='seller';
var sellerNum=32;
var isSeller=false;
testFn(seller,sellerNum,isSeller)
那每个参数的意义就比较明显了
1.6 使用ES6简化代码
- 使用class;
- 使用模板字符串
- 箭头函数;
- 块级作用于;
- …