持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第20天,点击查看活动详情
js是前端每日开发都要用到的语言,优化js代码,总结一些技巧,写出更简洁的js代码
定义变量时给定类型
定义变量的时候,应该直接指明类型,而不应该让解释器去猜。
var num,str,obj;
声明了3个变量,但是并不知道是什么类型的,应该在声明的时候就指明类型,对于读代码的人和解释器来说,都很方便的知道这个变量的类型和作用。
var num = 0,str = '',obj = null;
过程中不要改变变量的类型
过程中不要修改变量的类型,始终保持变量的类型不变。
var num = 5;
num = '-'+num;
这样的代码不好,不建议修改变量的类型。如果需要修改,可以再定义一个变量,始终保持变量的类型一致。
var num = 5;
var num2 = '-'+5;
减少==的使用
- ==是数值的比较,不包含类型,===是类型和数值的比较。
- 我们应该做类型的转换,并用===来比较
- ==在JSLint的检测中不通过的
举个栗子
null == undefined // true
'' == '0' // false
0 == '' // true
0 == '0' // true
'\t\r\n' == 0 // true
new String("abc") == "abc" // true
String("abc") == "abc" // true
new Boolean(true) == true // true
true == 1 // true
连等
连等是利用赋值运算表达式会返回所赋的值,并且执行顺序是从右到左的
obj = obj1 = obj2 = {...}
减少魔数
函数的传参应该是明朗,让人一目了然。
getList(true,1)
看到这个代码,我们肯定疑惑这2个参数的意思,不明朗,建议改成下面的方式,先定义好要传参的变量。再传参。
let isScroll = true, score = 1;
getList(isScroll,score)
虽然代码变长了,但是利于维护,并且一目了然。
设默认值
let flag = bar || 'default';
// bar 为 undefined, null, "", 0, false, NaN 时最后都得到'default'
[] || "aa"; // []
{} || "aa"; // SyntaxError
({}) || "aa";// Object {}
// NaN 检查是不是“不是一个数字”
isNaN(a);
isNaN(null);// false
函数参数
函数参数不要超过3个,超过的时候,应该封装成对象传入。
getList({
num: 1,
num2: 2,
num3: 3,
})