写在前面
在 js 里面,连续判断的最重要的场景,莫过于表单数据发送前验证了。
- 假设这是我的数据
// 表单数据
let form = {
name: 'Harry',
email: '',
age: 23
}
// 提示信息
let words = {
name: '名字为空',
email: '邮箱为空',
age: '年龄为空'
}
- 以前的写法
if ( !form.name ) {
alert(words.name)
return false;
} else if ( !form.email ) {
alert(words.email)
return false;
} else if ( !form.age ) {
alert(words.age)
return false;
}
每一个判断都要写弹框代码,还要return 。
有没有感觉又臭又长,看下面...
- 改进的写法
try {
if (!form.name) throw new Error(words.name)
else if (!form.email) throw new Error(words.email)
else if (!form.age) throw new Error(words.age)
} catch (e) {
alert(e.message)
return false
}
只写一次弹框代码,一次return。
try 语句里面只需要关注逻辑代码,而交互代码完全放到catch语句中去。
对于一些比较复杂的连续判断,这个代码量,会大量减少的。
- 以上只是我个人见解,欢迎指正。