您的位置:首頁技術文章
文章詳情頁

javascript - switch...case...

瀏覽:109日期:2023-04-30 18:14:16

問題描述

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...出了問題,求教問題在哪里

問題解答

回答1:

改成下面這個

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');}

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

回答2:

你的l確定是小于6的?

switch(n){case 1: 執行代碼塊 1 break;case 2: 執行代碼塊 2 break;default: n 與 case 1 和 case 2 不同時執行的代碼}回答3:

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’); }}

標簽: JavaScript
相關文章:
国产综合久久一区二区三区