Rumah > Soal Jawab > teks badan
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
扔个三星炸死你2017-06-28 09:30:02
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 l
和l < 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.
習慣沉默2017-06-28 09:30:02
你的l确定是小于6的?
switch(n)
{
case 1:
执行代码块 1
break;
case 2:
执行代码块 2
break;
default:
n 与 case 1 和 case 2 不同时执行的代码
}
代言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');
}
}