- 与(&&)或(||)短路处理
- 当 && 时,找到为false的分项就停止处理,并返回该分项的值,否则就执行完,并返回最后的分项的值。
var a = 5 && 6; console.log(a); //返回的结果为 6
var a = false && 6; console.log(a); //返回的结果为 false
- 当 || 时,找到为true的分项就停止处理,并返回该分项的值,否则执行完,并返回最后的分项的值。
var a = 5 || true || 6; console.log(a); //返回的结果为 5
var a = false || 6; console.log(a); //返回的结果为 6
- 利用hash表(用于多重的if else语句 或 switch语句中变量较多)
var missionStatus = e.row.missionStatus;
var config = {
1: { status: '待执行', color: '#000099'},
2: { status: '执行中', color: '#0066FF'},
3: { status: '已完成', color: '#008000'},
4: { status: '被取消', color: '#666666'},
5: { status: '失败', color: '#DD5044'},
}
var color = config[missionStatus].color || '';
var status = config[missionStatus].status ||'';
return '<span style="color:' + color + ';">' + status+ '</span>';
- es6-Map用法
var actions = newMap([
[{status: 1, visible: true}, () => {/* **sth** */}],
[{status: 1, visible: false}, () => {/* **sth** */}],
[{status: 2, visible: true}, () => {/* **sth** */}],
[{status: 2, visible: false}, () => {/* **sth** */}],
]);
var action = [...actions].filter(([key, value]) => (key.status == status && key.visible == visible));
action.forEach( ([key, value]) => value.call(this) );
Map详细用法