最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文熟練掌握J(rèn)avaScript的switch用法

 更新時(shí)間:2024年01月15日 15:30:40   作者:dralexsanderl  
在JavaScript中switch語(yǔ)句是一種用于多條件分支的控制語(yǔ)句,下面這篇文章主要給大家介紹了關(guān)于如果通過(guò)一文熟練掌握J(rèn)avaScript的switch用法的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

JavaScript switch 語(yǔ)句是一種根據(jù)不同條件在代碼中做出決策的方法。它比使用 if-else 語(yǔ)句更有條理、更簡(jiǎn)潔。switch 語(yǔ)句通過(guò)計(jì)算給定的表達(dá)式(可以是變量或值),并將其與幾種可能的情況進(jìn)行比較。如果表達(dá)式的值與其中一種情況匹配,則執(zhí)行關(guān)聯(lián)的代碼塊(一組指令)。如果未找到匹配項(xiàng),則可以執(zhí)行可選的默認(rèn)情況作為后備,這意味著它會(huì)在其他情況都不適用時(shí)運(yùn)行。

我們來(lái)看一個(gè)簡(jiǎn)單的例子:

switch (day) {
  case "Monday":
    console.log("工作日開(kāi)始");
    break;
  case "Friday":
    console.log("工作日結(jié)束");
    break;
  default:
    console.log("常規(guī)日期");
}

通過(guò)掌握 switch 語(yǔ)句,我們可以編寫(xiě)更干凈、更高效、組織更好的 JavaScript 代碼,最終提高我們的整體編程技能。

switch 基礎(chǔ)介紹

switch 語(yǔ)句以關(guān)鍵字 switch 開(kāi)頭,后跟括號(hào)中的表達(dá)式。該表達(dá)式與包含在 switch 塊中的一系列 case 標(biāo)簽進(jìn)行比較。每個(gè) case 標(biāo)簽代表一個(gè)不同的值,當(dāng)表達(dá)式與 case 標(biāo)簽的值匹配時(shí),執(zhí)行 case 后面的代碼塊。語(yǔ)句break通常用于在執(zhí)行匹配的 case 后退出 switch 塊,確保僅運(yùn)行預(yù)期的代碼塊,并防止跳到下一個(gè) case。同時(shí)還可以包含默認(rèn)情況,以便在沒(méi)有任何情況標(biāo)簽與表達(dá)式匹配時(shí)提供后備操作,從而確保對(duì)未知值的響應(yīng)。

使用語(yǔ)法:

switch(expression) {
    case {value1}:
    // 要執(zhí)行的代碼
    break
    case {value2}:
    // 要執(zhí)行的代碼
    break 
    default: 
    // 默認(rèn)情況
}

case

判斷條件,case的條件相當(dāng)于===,即全等條件下才成立。

default

當(dāng)沒(méi)有其他情況與提供的表達(dá)式匹配時(shí),將執(zhí)行 switch 語(yǔ)句中的默認(rèn)情況。它可以作為處理意外或未知值的后備措施,確保即使沒(méi)有匹配的情況也能提供響應(yīng)。

break

break關(guān)鍵字用在 switch 語(yǔ)句中,一旦找到并執(zhí)行匹配的 case 就退出 switch 塊。它阻止代碼繼續(xù)執(zhí)行剩余的情況,確保只生成正確的輸出。

一個(gè) case 在 switch 語(yǔ)句中不能有多個(gè)條件。要在一種情況下合并多個(gè)條件,可以在case中省略break,從而允許代碼執(zhí)行繼續(xù)到下一個(gè) case,直到遇到下一個(gè)break或到達(dá) switch 塊的末尾。當(dāng)多個(gè)條件共享相同的輸出或操作時(shí),這可能很有用。

switch (day) {
  case "Monday":
  case "Tuesday":
  case "Wednesday":
  case "Thursday":
  case "Friday":
    console.log("工作日");
    break;
  default:
    console.log("周末");
}

switch 與 if-else

當(dāng)需要處理多個(gè)條件時(shí),switch 語(yǔ)句是使用 if-else 語(yǔ)句的替代方法。雖然 if-else 語(yǔ)句適合檢查一系列可以表示為 true 或 false 的條件,但 switch 語(yǔ)句在處理可以采用多個(gè)不同值的單個(gè)表達(dá)式時(shí)更有效。從本質(zhì)上講,當(dāng)我們有多個(gè)相關(guān)條件需要管理時(shí),switch 語(yǔ)句可以使我們的代碼更干凈、更有組織性并且更易于閱讀。

例如,以下是一個(gè) if-else 結(jié)構(gòu)的例子:

if (color === "red") {
  console.log("The color is red");
} else if (color === "blue") {
  console.log("The color is blue");
} else if (color === "green") {
  console.log("The color is green");
} else {
  console.log("Unknown color");
}

使用switch語(yǔ)法:

switch (color) {
  case "red":
    console.log("The color is red");
    break;
  case "blue":
    console.log("The color is blue");
    break;
  case "green":
    console.log("The color is green");
    break;
  default:
    console.log("Unknown color");
}

在處理大量條件的情況下,switch 語(yǔ)句提供了一種更有組織性和可讀性的方式來(lái)處理多個(gè)條件。在 switch 語(yǔ)句中,括號(hào)內(nèi)的變量或值(在本例中為變量color)是需要計(jì)算的表達(dá)式。

什么時(shí)候使用switch

  • 大量單變量條件:當(dāng)需要處理大量條件時(shí),switch 語(yǔ)句通常比 if-else 鏈更有組織性且更易于閱讀。
  • 單變量評(píng)估:如果我們的條件是基于具有多個(gè)不同值的單個(gè)變量或表達(dá)式,則 switch 語(yǔ)句可以提供比 if-else 模式更高效、更清晰的結(jié)構(gòu)。
  • 更快的代碼執(zhí)行速度:在某些情況下,JavaScript 引擎可以優(yōu)化 switch 語(yǔ)句,與一系列 if-else 語(yǔ)句相比,可以實(shí)現(xiàn)更快的代碼執(zhí)行速度。
  • 更容易維護(hù): switch 語(yǔ)句可以使添加、刪除或修改條件變得更加容易,因?yàn)槊總€(gè)條件在 switch 塊中都是獨(dú)立的。相反,當(dāng)需要更改時(shí),if-else 鏈可能需要更廣泛的修改。
  • 默認(rèn)回退: switch 語(yǔ)句提供可選的默認(rèn)情況,當(dāng)其他情況都不與給定表達(dá)式匹配時(shí)可以執(zhí)行該默認(rèn)情況。此功能允許以一種干凈的方式處理意外或未知值。

什么時(shí)候使用if-else

  • 復(fù)雜條件:如果我們的條件涉及復(fù)雜邏輯、多個(gè)變量或關(guān)系和邏輯運(yùn)算符,則 if-else 模式提供了更大的靈活性,并且比 switch 語(yǔ)句更適合這些情況。
  • 基于范圍的條件:當(dāng)我們需要檢查一系列非離散值或條件時(shí),if-else 模式提供了更好的解決方案,因?yàn)?nbsp;switch 語(yǔ)句是為比較離散值而設(shè)計(jì)的。
  • 條件數(shù)量少:如果只有幾個(gè)簡(jiǎn)單的條件需要檢查,則使用 if-else 模式比 switch 語(yǔ)句更直接、更容易編寫(xiě)。
  • 非常量: switch 語(yǔ)句需要 case 標(biāo)簽為常量值,這意味著它們不能是在運(yùn)行時(shí)更改的表達(dá)式。如果我們需要判斷非常量值的條件,則 if-else 模式是合適的選擇。
  • 判斷truefalse值:當(dāng)我們需要檢查值是真值還是假值時(shí),If-else 模式適用。switch 語(yǔ)句不是為這種類(lèi)型的評(píng)估而設(shè)計(jì)的,并且需要更詳細(xì)的代碼才能完成相同的結(jié)果。
  • 提前退出條件:如果我們有提前退出條件,一旦滿足特定條件就不需要進(jìn)一步判斷,則 if-else 模式可能會(huì)更有效。使用 switch 語(yǔ)句,即使發(fā)現(xiàn)早期匹配,也會(huì)判斷所有情況(除非我們使用了break語(yǔ)句)。

常見(jiàn)問(wèn)題

多個(gè)case執(zhí)行(忘記使用該break語(yǔ)句)

使用 switch 語(yǔ)句時(shí)的一個(gè)常見(jiàn)錯(cuò)誤是在每個(gè) case 后面都沒(méi)有包含break語(yǔ)句。此錯(cuò)誤會(huì)導(dǎo)致執(zhí)行所有的case.

不正確的比較值和類(lèi)型

switch 語(yǔ)句使用嚴(yán)格比較,這在比較不同數(shù)據(jù)類(lèi)型時(shí)可能會(huì)導(dǎo)致意外結(jié)果。在下面的示例中,字符串"2"不等于數(shù)字2。

const num = '2';
switch (num) {
  case 2:
    console.log(2);
    break;
  default:
    console.log('不是數(shù)字2');
}
// 輸出 不是數(shù)字2

范圍界定問(wèn)題

switch 語(yǔ)句中的一個(gè)常見(jiàn)錯(cuò)誤是聲明了沒(méi)有塊作用域或不正確作用域的變量,導(dǎo)致它們?cè)谄渌闆r下可以訪問(wèn),或者產(chǎn)生語(yǔ)法錯(cuò)誤。

總結(jié)

到此這篇關(guān)于JavaScript的switch用法的文章就介紹到這了,更多相關(guān)js的switch用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript中兩個(gè)感嘆號(hào)的作用說(shuō)明

    JavaScript中兩個(gè)感嘆號(hào)的作用說(shuō)明

    用兩個(gè)感嘆號(hào)的作用就在于,如果明確設(shè)置了o中flag的值(非null/undefined/0""/等值),自然test就會(huì)取跟o.flag一樣的值;如果沒(méi)有設(shè)置,test就會(huì)默認(rèn)為false,而不是null或undefined
    2011-12-12
  • uni-app應(yīng)用配置manifest.json最全最詳細(xì)配置

    uni-app應(yīng)用配置manifest.json最全最詳細(xì)配置

    這篇文章主要給大家介紹了關(guān)于uni-app應(yīng)用配置manifest.json最全最詳細(xì)配置,manifest.json文件是UniApp開(kāi)發(fā)中用來(lái)配置應(yīng)用信息的重要文件,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • 如何封裝一個(gè)可用js直接調(diào)用的彈窗組件

    如何封裝一個(gè)可用js直接調(diào)用的彈窗組件

    這篇文章主要介紹了如何封裝一個(gè)可用js直接調(diào)用的彈窗組件的相關(guān)資料,通過(guò)Vue.extend動(dòng)態(tài)創(chuàng)建實(shí)例,支持Promise異步關(guān)閉,提升復(fù)用性與開(kāi)發(fā)效率,實(shí)現(xiàn)類(lèi)似原生alert的調(diào)用方式,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下
    2025-05-05
  • 原生Javascript封裝的一個(gè)AJAX函數(shù)分享

    原生Javascript封裝的一個(gè)AJAX函數(shù)分享

    這篇文章主要介紹了原生Javascript封裝的一個(gè)AJAX函數(shù)分享,本文是實(shí)際項(xiàng)目中提取出來(lái)的,簡(jiǎn)單易用,需要的朋友可以參考下
    2014-10-10
  • js獲取URL的參數(shù)的方法(getQueryString)示例

    js獲取URL的參數(shù)的方法(getQueryString)示例

    getQueryString方法默認(rèn)返回的是 string如果是int類(lèi)型,則JS使用的時(shí)候,要進(jìn)行轉(zhuǎn)換一下,下面有個(gè)不錯(cuò)的示例,大家可以參考下
    2013-09-09
  • Electron中關(guān)于靜態(tài)資源加載問(wèn)題的解決方案

    Electron中關(guān)于靜態(tài)資源加載問(wèn)題的解決方案

    通常,我們?cè)谑褂胑lectron框架的時(shí)候會(huì)使用到loadFile/loadURL進(jìn)行頁(yè)面的加載,分別是加載本地文件和加載網(wǎng)絡(luò)文件,當(dāng)nuxtjs/nextjs想引入到electron中顯示時(shí),你會(huì)遇到資源路徑引用的問(wèn)題,所以本文給大家介紹了Electron中關(guān)于靜態(tài)資源加載問(wèn)題的解決方案
    2024-12-12
  • JavaScript中的值類(lèi)型轉(zhuǎn)換介紹

    JavaScript中的值類(lèi)型轉(zhuǎn)換介紹

    這篇文章主要介紹了JavaScript中的值類(lèi)型轉(zhuǎn)換介紹,本文講解了值類(lèi)型轉(zhuǎn)換規(guī)則、值類(lèi)型轉(zhuǎn)換與比較、顯式類(lèi)型轉(zhuǎn)換、對(duì)類(lèi)型自動(dòng)轉(zhuǎn)換的使用等內(nèi)容,需要的朋友可以參考下
    2014-12-12
  • js+css實(shí)現(xiàn)增加表單可用性之提示文字

    js+css實(shí)現(xiàn)增加表單可用性之提示文字

    平常設(shè)計(jì)表單的時(shí)候,我們會(huì)加入一些提示文字,最常見(jiàn)的做法是利用value來(lái)設(shè)置,下面與大家分享一個(gè)實(shí)例,感興趣的朋友可以參考下哈
    2013-06-06
  • javaScript實(shí)現(xiàn)鼠標(biāo)在文字上懸浮時(shí)彈出懸浮層效果

    javaScript實(shí)現(xiàn)鼠標(biāo)在文字上懸浮時(shí)彈出懸浮層效果

    這篇文章主要為大家詳細(xì)介紹了javaScript實(shí)現(xiàn)鼠標(biāo)在文字上懸浮時(shí)彈出懸浮層效果的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 將json當(dāng)數(shù)據(jù)庫(kù)一樣操作的javascript lib

    將json當(dāng)數(shù)據(jù)庫(kù)一樣操作的javascript lib

    使用javascript操作JSON的類(lèi)庫(kù)TAFFY DB,具體介紹了:查詢數(shù)據(jù)、添加數(shù)據(jù)、刪除數(shù)據(jù)、修改數(shù)據(jù)。
    2013-10-10

最新評(píng)論

东平县| 文安县| 和顺县| 克什克腾旗| 扎鲁特旗| 景洪市| 许昌县| 慈利县| 昭平县| 河西区| 毕节市| 抚顺市| 屯昌县| 忻州市| 阜南县| 万州区| 民和| 临沭县| 吴忠市| 西乌珠穆沁旗| 夏津县| 松溪县| 广安市| 嵩明县| 江孜县| 千阳县| 迭部县| 佛坪县| 固始县| 益阳市| 华阴市| 朝阳县| 云南省| 星座| 交城县| 通渭县| 象州县| 阿拉善盟| 宜川县| 肥乡县| 桑植县|