第001題. 這個switch輸出的是個啥? 你可能會做錯哦...

請寫出下面代碼的輸出內(nèi)容:

const test = 2
switch (test) {
  case 1:
    console.log(1)
  case 2:
    console.log(2)
  case 3:
    console.log(3)
  default:
    console.log('default')
}

各位大佬看完這幾句代碼, 可能會覺得智商受到了侮辱: are you kidding me ?? 問我這么簡單的問題, 瞧不起誰呢??是覺得我的發(fā)型不夠程序員嗎? 最后肯定是輸出 "2" 啊!

鄙視你

但是看似簡單的地方, 卻比較容易出錯.
讓我們運行一下這段代碼, 看一下最后的輸出結(jié)果:


結(jié)果并不是2

最后的結(jié)果是: 2 3 default

wtf

為啥會這樣呢?

如果大佬們再仔細(xì)看一下這段代碼, 就會發(fā)現(xiàn): 每個case語句中, 都沒有進行break, 也就是說, 代碼執(zhí)行完了 case 2子句之后, 并沒有跳出switch, 而是繼續(xù)執(zhí)行switch中的下一個語句, 接著打印出了3 default

看一下MDN是如何解釋的:

可選的 break語句確保程序立即從相關(guān)的 case 子句中跳出 switch 并接著執(zhí)行 switch 之后的語句。若 break 被省略,程序會繼續(xù)執(zhí)行 switch 語句中的下一條語句。

完.

以上內(nèi)容同步更新到了我的公眾號每天刷一題, 大佬, 來都來了, 關(guān)注下吧, 會不定期贈送學(xué)習(xí)資料的!

每天刷一題

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容