问题简介
写代码时,需要经常判断某个属性是否存在,某种条件是否满足,最后回头一看,全是if语句的层次嵌套,导致可读性较差,为了减少if语句的使用,总结了一些常用的方法。
方法介绍
1. &&
var obj = {}, c = 0;
if(obj.a){
c = 1;
}
//等价于
obj.a && (c = 1);
2. ||
var c;
if(!window.a){
c = 1;
}
// 等价于
window.a || (c = 1);
tips: 使用”!!”可以将变量转化为布尔类型,比如:
!!undefined === false;
3. 三目运算符
使用三目运算符可以替代简单的if..else语句。
var num = 10, str = '';
if(num >= 0){
str = '+' + num;
} else {
str = num.toString();
}
// 等价于
str = num < 0 ? num.toString() : '+' + num;
4. 使用简单配置
var a = 0, b = '';
if(a === 0){
b = 'abc';
} else if (a === 1) {
b = 'def';
} else {
b = 'ghi';
}
// 等价于
var arr = ['abc', 'def', 'ghi'];
var a = 0;
var b = arr[a];
// 如果a不是从0开始的数字,可以改成对象配置
var obj = { '0': 'abc', '1': 'def', '2': 'ghi' };
var a = 0;
var b = obj[a.toString()];
tips: 表示对象属性时,一般使用“.”作为连接,但是当属性是变量或者数字时,使用“[ ]”。