javascript - suis...kes...
typecho
typecho 2017-06-28 09:28:02
0
3
965
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...Sesuatu telah berlaku, sila beritahu saya di mana masalahnya

typecho
typecho

Following the voice in heart.

membalas semua(3)
扔个三星炸死你

Tukar kepada yang berikut

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

}

Tetapi anda pasti boleh menggunakan pernyataan if:

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

Mengikut tulisan asal, ia sepatutnya ll < 6是否相等,l是一个整数,表示字符串的长度,l<6是一个布尔值,整数和布尔值是不全等的,所以永远都会走default语句;
原先写法的误区:不是case语句后面的为true就会执行,而是switch表达式里面的内容l和case语句后面的内容l<6全等时才匹配;假设v="111",此时l=3 l<6为true,但是3!==true, jadi pernyataan lalai digunakan.

習慣沉默

你的l确定是小于6的?

switch(n)
{
case 1:
  执行代码块 1
  break;
case 2:
  执行代码块 2
  break;
default:
  n 与 case 1 和 case 2 不同时执行的代码
}
代言
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');
  }

}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan