defaultError = document.getElementById('item-error');
if (defaultError) {
defaultError.style.display = 'none';
}
这里的if(defaultError)是什么意思?这种语句什么时候才返回真?
if (mail && mail.value === '') {
displayError(mail, '请输入邮箱');
error = 1;
} else {
mail && clearError(mail);
}这里的mail && clearError(mail);是什么意思?clearError是一个函数,但前面的mail&&是什么意思?
if (defaultError) {
defaultError.style.display = 'none';
}
这里的if(defaultError)是什么意思?这种语句什么时候才返回真?
if (mail && mail.value === '') {
displayError(mail, '请输入邮箱');
error = 1;
} else {
mail && clearError(mail);
}这里的mail && clearError(mail);是什么意思?clearError是一个函数,但前面的mail&&是什么意思?
//记住一句话就行了 非0即为真mail && clearError(mail);
//实际上就是执行clearError这个函数就是了 前提是mail不为空 0 null这些
//这种"与"操作是一个技巧性写法 楼主记下就是了
mail && clearError(mail);是当mail不为null时执行clearError函数,因为类似于a&&b这种表达式是需要a为true时才会继续后面b的判断,如果a为false,那么表达式会马上返回false而不会继续b的判断。
mail && clearError(mail) 判断mail为真,并且执行的clearError函数也为真 就符合条件
这是为了防止在元素不存在时执行下面的设置可见性语句出现“不存在此对象”的错误。2.mail && clearError(mail);
是当mail对象存在时,就执行clearError(mail),否则不执行。
实际整个相当于下面的代码:
if (mail){
if(mail.value === '') {
displayError(mail, '请输入邮箱');
error = 1;
} else {
clearError(mail);
}
}
相对来说,这个没必要那么写。