Maison  >  Questions et réponses  >  le corps du texte

javascript - changer...cas...

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...Quelque chose s'est mal passé, dites-moi s'il vous plaît où est le problème

typechotypecho2645 Il y a quelques jours927

répondre à tous(3)je répondrai

  • 扔个三星炸死你

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

    Changez-le comme suit

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

    Mais vous pouvez certainement utiliser une instruction if :

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

    Selon l'écriture originale, cela devrait être ll < 6是否相等,l是一个整数,表示字符串的长度,l<6是一个布尔值,整数和布尔值是不全等的,所以永远都会走default语句;
    原先写法的误区:不是case语句后面的为true就会执行,而是switch表达式里面的内容l和case语句后面的内容l<6全等时才匹配;假设v="111",此时l=3 l<6为true,但是3!==true, donc l'instruction par défaut est utilisée.

    répondre
    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 不同时执行的代码
    }

    répondre
    0
  • 代言

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

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

    répondre
    0
  • Annulerrépondre