天天看點

#yyds幹貨盤點#js中if判斷未生效

      先說結論,1.首先要注意0。 if(0)在js中,if的代碼塊是不會執行的。  2. java背景傳來存在null的字段,假設  let test = null ; tyepeof  test ,輸出的是 object,而不是undefined。  是以判斷的時候 ,不要用 if (typeof  test != 'undefined' ),要寫成 if (test != undefined )      

  1. 第一個錯誤

          今天寫了一段代碼,有四個輸入框,分别是上限值,上限範圍(< 或 <=),下限值,下限範圍( > 或 >=)。範圍使用1、2代替。

      他們的關系是:有上限值必有上限範圍,有下限值必有下限範圍,反之亦然。必須有上限值或下限值,使用js判斷。

// testUp - 上限值 , testUpRange - 上限範圍 , testDown - 下限值 , testDownRange - 下限範圍

if(testUp && !testUpRange){

message.error("有上限值時必須填寫上限值範圍")

return;

}

if(testDown && !testDownRange){

message.error("有下限值時必須填寫下限值範圍")

return;

}

if(!testUp && testUpRange){

message.error("有上限範圍時必須填寫上限值")

return;

}

if(!testDown && testDownRange){

message.error("有下限範圍時必須填寫下限值")

return;

}

if(!testUp && !testDown){

message.error("必須填寫上限或下限")

return;

}

      輸入一種情況:上限值20,上限範圍<;下限值0,下限值範圍未輸入,未提示  “有下限值時必須填寫下限範圍”,并儲存成功。

      首先輸出testDown,testDownRange,發現testDown輸出0,testDownRange輸出null(背景-java傳送的資料),以為js沒有判斷null,故編寫以下代碼:

if(!testDownRange){

console.log(testDownRange)

}

      發現testDownRange 輸出為 undefined,有點想不通,又編寫以下代碼:

if(testDown){

console.log(testDown)

}

      發現沒有輸出testDown!!!! 

      突然想起來,testDown是0,js中,如果直接使用變量進行判斷,即使該變量不是undefined,是0,也會判為false。

      以後做這種判斷時切記!!!!!

  1. 第二個錯誤

          代碼改成下面的了:

    if( typeof testUp != 'undefined' && !testUpRange){
         message.error("有上限值時必須填寫上限值範圍")
         return;
     }
     if( typeof testDown != 'undefined'&& !testDownRange){
         message.error("有下限值時必須填寫下限值範圍")
         return;
     }
    
     if( typeof testUp == 'undefined'&& testUpRange){
         message.error("有上限範圍時必須填寫上限值")
         return;
     }
     if( typeof testDown == 'undefined'&& testDownRange){
         message.error("有下限範圍時必須填寫下限值")
         return;
     }
    
     if( typeof testUp == 'undefined'&& typeof testDown == 'undefined'){
         message.error("必須填寫上限或下限")
         return;
     }
     if(!testUpRange && !testDownRange){
         message.error("必須填寫上限範圍或下限範圍")
         return;
     }
               

      一條資料,有上限值和上限範圍,沒有下限值和下限範圍。點選編輯,儲存,發現提示: “有下限值時必須填寫下限值範圍”。