寫在前面
在 js 里面,連續(xù)判斷的最重要的場景,莫過于表單數(shù)據(jù)發(fā)送前驗證了。
- 假設(shè)這是我的數(shù)據(jù)
// 表單數(shù)據(jù)
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 。
有沒有感覺又臭又長,看下面...
- 改進(jìn)的寫法
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 語句里面只需要關(guān)注邏輯代碼,而交互代碼完全放到catch語句中去。
對于一些比較復(fù)雜的連續(xù)判斷,這個代碼量,會大量減少的。
- 以上只是我個人見解,歡迎指正。