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&&是什么意思?

解决方案 »

  1.   

    获得页面id为item-error的元素,如果这个元素存在就设置其display属性为none;如果mail存在,且mail.value值为空字符
      

  2.   

    这里的if(defaultError)是什么意思?这种语句什么时候才返回真?
    //记住一句话就行了 非0即为真mail && clearError(mail);
    //实际上就是执行clearError这个函数就是了 前提是mail不为空 0 null这些 
    //这种"与"操作是一个技巧性写法 楼主记下就是了

      

  3.   

    if (defaultError) {defaultError 不是 0 false null undefined 时 返回 true
      

  4.   

    if(defaultError)是指当id为'item-error'的元素存在时返回true。
    mail && clearError(mail);是当mail不为null时执行clearError函数,因为类似于a&&b这种表达式是需要a为true时才会继续后面b的判断,如果a为false,那么表达式会马上返回false而不会继续b的判断。
      

  5.   

    if(defaultError)判断是否为真
    mail && clearError(mail) 判断mail为真,并且执行的clearError函数也为真 就符合条件
      

  6.   

    1.存在ID为item-error的元素时就返回真。
    这是为了防止在元素不存在时执行下面的设置可见性语句出现“不存在此对象”的错误。2.mail && clearError(mail);
    是当mail对象存在时,就执行clearError(mail),否则不执行。
    实际整个相当于下面的代码:
    if (mail){
     if(mail.value === '') {
        displayError(mail, '请输入邮箱');
        error = 1;
      } else {
        clearError(mail);
      }
    }
    相对来说,这个没必要那么写。