首頁  >  問答  >  主體

javascript - 切換...大小寫...

export const setID = (v) => {
  console.log('执行setID',v);
  let l = v.length;
  switch(l)
  {
    case l < 6 :
      console.log('qq');
      break;
    default:
      console.log('11111');
  }

}

v是傳入的字串,這段程式碼第一個console正常執行,第二個console無論任何情況都不執行,現在可以肯定的是我的switch...case...出了問題,求教問題在哪裡

typechotypecho2694 天前952

全部回覆(3)我來回復

  • 扔个三星炸死你

    扔个三星炸死你2017-06-28 09:30:02

    改成下面這個

    const setID = (v) => {
      console.log('执行setID',v);
      let l = v.length;
      switch(l < 6)
      {
        case true :
          console.log('qq');
          break;
        default:
          console.log('11111');
      }
    
    }

    不過你這個完全可以用一個if語句:

    if (l < 6) {
        console.log("qq");
    } else {
        console.log("1111");
    }

    依照原先的寫法應該是ll < 6是否相等,l是一個整數,表示字串的長度,l<6是一個布林值,整數和布林值是不全等的,所以永遠都會走default語句;
    原先寫法的誤解:不是case語句後面的為true就會執行,而是switch表達式裡面的內容l和case語句後面的內容l<6 全等時才符合;假設v="111",此時l=3 l<6為true,但是3!==true,所以走的是default語句。

    回覆
    0
  • 習慣沉默

    習慣沉默2017-06-28 09:30:02

    你的l確定是小於6的?

    switch(n)
    {
    case 1:
      执行代码块 1
      break;
    case 2:
      执行代码块 2
      break;
    default:
      n 与 case 1 和 case 2 不同时执行的代码
    }

    回覆
    0
  • 代言

    代言2017-06-28 09:30:02

    雷雷

    回覆
    0
  • 取消回覆