javascript - switch...case...
問(wèn)題描述
export const setID = (v) => { console.log(’執(zhí)行setID’,v); let l = v.length; switch(l) { case l < 6 : console.log(’qq’); break; default: console.log(’11111’); }}
v是傳入的字符串,這段代碼第一個(gè)console正常執(zhí)行,第二個(gè)console無(wú)論任何情況都不執(zhí)行,現(xiàn)在可以肯定的是我的switch...case...出了問(wèn)題,求教問(wèn)題在哪里
問(wèn)題解答
回答1:改成下面這個(gè)
const setID = (v) => { console.log(’執(zhí)行setID’,v); let l = v.length; switch(l < 6) { case true : console.log(’qq’); break; default: console.log(’11111’); }}
不過(guò)你這個(gè)完全可以用一個(gè)if語(yǔ)句:
if (l < 6) { console.log('qq');} else { console.log('1111');}
按照原先的寫(xiě)法應(yīng)該是l和l < 6是否相等,l是一個(gè)整數(shù),表示字符串的長(zhǎng)度,l<6是一個(gè)布爾值,整數(shù)和布爾值是不全等的,所以永遠(yuǎn)都會(huì)走default語(yǔ)句;原先寫(xiě)法的誤區(qū):不是case語(yǔ)句后面的為true就會(huì)執(zhí)行,而是switch表達(dá)式里面的內(nèi)容l和case語(yǔ)句后面的內(nèi)容l<6全等時(shí)才匹配;假設(shè)v='111',此時(shí)l=3 l<6為true,但是3!==true,所以走的是default語(yǔ)句。
回答2:你的l確定是小于6的?
switch(n){case 1: 執(zhí)行代碼塊 1 break;case 2: 執(zhí)行代碼塊 2 break;default: n 與 case 1 和 case 2 不同時(shí)執(zhí)行的代碼}回答3:
export const setID = (v) => { console.log(’執(zhí)行setID’,v); let l = v.length; switch(true) { case l < 6 : console.log(’qq’); break; default: console.log(’11111’); }}
相關(guān)文章:
1. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””2. docker-compose中volumes的問(wèn)題3. boot2docker無(wú)法啟動(dòng)4. nignx - docker內(nèi)nginx 80端口被占用5. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.6. dockerfile - 為什么docker容器啟動(dòng)不了?7. docker容器呢SSH為什么連不通呢?8. node.js - antdesign怎么集合react-redux對(duì)input控件進(jìn)行初始化賦值9. java - SSH框架中寫(xiě)分頁(yè)時(shí)service層中不能注入分頁(yè)類(lèi)10. 關(guān)于docker下的nginx壓力測(cè)試

網(wǎng)公網(wǎng)安備