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

JavaScript流程控制語句實例詳解

 更新時間:2025年12月12日 08:34:49   作者:A2420734930  
JavaScript中的流程控制語句是編寫復(fù)雜邏輯和控制程序執(zhí)行順序的關(guān)鍵元素,這篇文章主要介紹了JavaScript流程控制語句的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

流程控制語句概述

JavaScript中的流程控制語句用于控制代碼的執(zhí)行順序,根據(jù)條件或循環(huán)邏輯決定代碼塊的執(zhí)行路徑。主要包括條件語句和循環(huán)語句兩大類。

條件語句

條件語句通過判斷給定條件的真假來決定執(zhí)行哪部分代碼。

根據(jù)條件執(zhí)行不同代碼塊,核心是if...elseswitch

if語句 基礎(chǔ)條件判斷結(jié)構(gòu):

if (condition) {
  // 條件為真時執(zhí)行的代碼
}

解析:條件表達式結(jié)果為true時,執(zhí)行花括號內(nèi)的代碼;否則跳過。

if-else語句 雙向條件分支:

if (condition) {
  // 條件為真時執(zhí)行
} else {
  // 條件為假時執(zhí)行
}

解析:二選一執(zhí)行,覆蓋所有情況。

if-else if-else 多條件分支判斷:

if (condition1) {
  // 條件1為真時執(zhí)行
} else if (condition2) {
  // 條件2為真時執(zhí)行
} else {
  // 所有條件為假時執(zhí)行
}

解析:多條件分支,按順序判斷,匹配第一個true條件后執(zhí)行對應(yīng)代碼,后續(xù)條件不再判斷。

switch語句 多分支選擇結(jié)構(gòu):

switch(expression) {
  case value1:
    // 匹配value1時執(zhí)行
    break;
  case value2:
    // 匹配value2時執(zhí)行
    break;
  default:
    // 默認執(zhí)行
}
  • 表達式與case值用 ** 嚴格相等(===)** 比較。
  • break用于跳出switch,否則會繼續(xù)執(zhí)行后續(xù)case(“穿透” 現(xiàn)象)。
  • default可選,無匹配時執(zhí)行。

循環(huán)語句

循環(huán)語句用于重復(fù)執(zhí)行代碼塊,直到滿足特定條件。

重復(fù)執(zhí)行代碼塊,核心是for、while、do...while

for循環(huán) 已知迭代次數(shù)的循環(huán):

for (initialization; condition; finalExpression) {
  // 循環(huán)體
}
  • 初始化:只執(zhí)行一次,通常聲明循環(huán)變量(如let i = 0)。
  • 條件判斷:每次循環(huán)前執(zhí)行,true則進入循環(huán)體。
  • 更新:每次循環(huán)體執(zhí)行后執(zhí)行,通常更新循環(huán)變量(如i++)。

while循環(huán) 條件前置循環(huán):

while (condition) {
  // 循環(huán)體
}

解析:先判斷條件,true則執(zhí)行循環(huán)體,適合循環(huán)次數(shù)不確定的場景。

do-while循環(huán) 條件后置循環(huán)(至少執(zhí)行一次):

do {
  // 循環(huán)體
} while (condition);

解析:先執(zhí)行一次循環(huán)體,再判斷條件,至少執(zhí)行一次。

for-in循環(huán) 遍歷對象屬性:

for (const key in object) {
  // 使用object[key]訪問屬性值
}

for-of循環(huán) 遍歷可迭代對象(ES6新增):

for (const item of iterable) {
  // 使用item訪問元素
}

跳轉(zhuǎn)語句

控制流程跳轉(zhuǎn)的特殊語句。

控制循環(huán)或分支的執(zhí)行流程,包括break、continue、return。

break 終止當前循環(huán)或switch語句:

while (true) {
  if (condition) break; // 立即退出循環(huán)
}

作用:跳出當前循環(huán)(for/while)或switch語句

continue 跳過當前循環(huán)迭代:

for (let i = 0; i < 10; i++) {
  if (i % 2 === 0) continue; // 跳過偶數(shù)次迭代
  console.log(i);
}

跳過當前循環(huán)的剩余代碼,直接進入下一次循環(huán)。

return 從函數(shù)中返回:

function test() {
  return; // 提前退出函數(shù)
}
  • 作用:終止函數(shù)執(zhí)行并返回值,不僅用于流程控制,還能返回結(jié)果。

異常處理

通過try-catch結(jié)構(gòu)處理運行時錯誤。

try-catch-finally 錯誤捕獲和處理機制:

try {
  // 可能出錯的代碼
} catch (error) {
  // 錯誤處理
} finally {
  // 無論是否出錯都會執(zhí)行
}

throw 主動拋出異常:

throw new Error('自定義錯誤信息');

最佳實踐

  1. 條件語句中優(yōu)先使用嚴格比較(===)
  2. switch語句必須包含break或return避免穿透
  3. 循環(huán)體內(nèi)避免修改循環(huán)計數(shù)器
  4. 嵌套循環(huán)不宜超過3層
  5. 異常處理應(yīng)具體化錯誤類型

這些流程控制語句組合使用可以實現(xiàn)復(fù)雜的程序邏輯,合理運用能顯著提升代碼可讀性和執(zhí)行效率。

注意事項

  1. 死循環(huán):條件永遠為true且無break,會導(dǎo)致程序卡死(如while(true)無終止條件)。
  2. 嚴格相等switchcase匹配使用===,需注意類型(如1"1"不匹配)。
  3. 變量作用域for循環(huán)中用let聲明變量(塊級作用域),避免var的變量提升問題。

通過流程控制語句,JavaScript 可以實現(xiàn)復(fù)雜的邏輯判斷和重復(fù)操作,是編寫交互邏輯的基礎(chǔ)。

在實際開發(fā)中,JavaScript 流程控制語句的使用頻率和場景高度依賴業(yè)務(wù)需求,以下是不同場景下的常用選擇及實踐經(jīng)驗:

一、條件判斷:if...else if...else為主,switch為輔

1.if...else if...else:最常用

  • 適用場景
    • 條件為范圍判斷(如 score > 90、age >= 18)。
    • 條件為復(fù)雜表達式(如多個邏輯運算符組合 a && b || c)。
    • 分支邏輯不一致(每個分支執(zhí)行不同類型的操作)。

2.switch:適合固定值匹配

  • 適用場景
    • 條件為單一值匹配(如狀態(tài)碼、枚舉值、固定類型)。
    • 分支邏輯相對統(tǒng)一(如根據(jù)類型執(zhí)行相似操作)。

二、循環(huán)語句:for/for...of為主,while/do...while為輔

1.for循環(huán):最基礎(chǔ),適合已知循環(huán)次數(shù)

  • 適用場景:遍歷數(shù)組(通過索引)、固定次數(shù)的重復(fù)操作(如生成指定長度的數(shù)組)。

2.for...of:ES6+ 首選,遍歷可迭代對象

  • 適用場景:遍歷數(shù)組、字符串、Map/Set 等,直接獲取值而非索引,代碼更簡潔。

3.for...in:僅用于遍歷對象屬性(慎用)

  • 適用場景:遍歷普通對象的鍵名(需注意過濾原型鏈屬性),不推薦遍歷數(shù)組(可能遍歷到非數(shù)字索引)。

4.while/do...while:適合循環(huán)次數(shù)不確定

  • 適用場景
    • 異步操作重試(如接口請求失敗后重試 3 次)。
    • 讀取流數(shù)據(jù)(直到數(shù)據(jù)讀取完畢)。

三、跳轉(zhuǎn)語句:break/continue/return按需使用

1.break:終止循環(huán)或switch

  • 常用場景
    • 遍歷數(shù)組時找到目標值后終止循環(huán)。
    • 滿足特定條件時退出循環(huán)(如用戶取消操作)。

2.continue:跳過當前循環(huán)

  • 常用場景:過濾數(shù)據(jù)(如跳過空值、無效數(shù)據(jù))。

3.return:終止函數(shù)執(zhí)行

  • 常用場景:函數(shù)提前返回結(jié)果(如參數(shù)校驗失敗時直接返回錯誤)。

四、實戰(zhàn)高頻組合

  1. if + for...of:處理數(shù)組過濾、轉(zhuǎn)換(如篩選符合條件的數(shù)據(jù))。
  2. switch + break:狀態(tài)機、類型判斷(如根據(jù)操作類型執(zhí)行不同邏輯)。
  3. while + 異步:重試機制、輪詢(如 WebSocket 重連)。
  4. 循環(huán)嵌套:處理二維數(shù)據(jù)(如表格渲染、矩陣運算)。

五、開發(fā)建議

  • 優(yōu)先使用for...of而非for:代碼更簡潔,避免索引錯誤(尤其遍歷數(shù)組)。
  • 少用for...in遍歷數(shù)組:可能遍歷到數(shù)組的自定義屬性或原型鏈屬性。
  • 復(fù)雜條件用if,固定值匹配用switch:提升代碼可讀性。
  • 避免死循環(huán):確保循環(huán)條件最終會變?yōu)?code>false,或通過break終止。

總之,實際開發(fā)中沒有絕對 “唯一” 的選擇,需根據(jù)條件類型、循環(huán)場景代碼可讀性綜合判斷,核心是讓邏輯清晰、易于維護。

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

相關(guān)文章

  • 獲取3個數(shù)組不重復(fù)的值的具體實現(xiàn)

    獲取3個數(shù)組不重復(fù)的值的具體實現(xiàn)

    先用concat拼接數(shù)組 ,再使用一個對象、一個新數(shù)組(用于存放不重復(fù)的數(shù)組)具體實現(xiàn)如下,感興趣的朋友可以參考
    2013-12-12
  • 純css實現(xiàn)窗戶玻璃雨滴逼真效果

    純css實現(xiàn)窗戶玻璃雨滴逼真效果

    css實現(xiàn)窗戶上水珠效果,效果特別逼真,窗外的雨淅淅瀝瀝飄打在玻璃上,看起來很像模糊的窗外,斜滴的雨露,接下來給大家一起來用CSS技術(shù)實現(xiàn)這樣一幅畫面,下面給大家分享使用純css實現(xiàn)窗戶玻璃雨滴逼真效果,感興趣的朋友快樂圍觀吧
    2015-08-08
  • 禁止js文件緩存的代碼

    禁止js文件緩存的代碼

    禁止js文件緩存問題是我一直遇到的大問題,終于找到了一個比較好的辦法
    2010-04-04
  • JavaScript中call,apply,bind的區(qū)別與實現(xiàn)

    JavaScript中call,apply,bind的區(qū)別與實現(xiàn)

    這篇文章主要介紹了JavaScript中call,apply,bind的區(qū)別與實現(xiàn),文章通過圍繞主題思想展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • 微信小程序?qū)崿F(xiàn)環(huán)形進度條

    微信小程序?qū)崿F(xiàn)環(huán)形進度條

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)環(huán)形進度條,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 微信小程序:數(shù)據(jù)存儲、傳值、取值詳解

    微信小程序:數(shù)據(jù)存儲、傳值、取值詳解

    這篇文章主要介紹了微信小程序:數(shù)據(jù)存儲、傳值、取值,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • form.submit()不能提交表單的錯誤原因及解決方法

    form.submit()不能提交表單的錯誤原因及解決方法

    button的id不要設(shè)置為submit,否則可能會引起混淆,導(dǎo)致表單的submit()方法不能提交表單
    2014-10-10
  • Openlayers繪制地圖標注

    Openlayers繪制地圖標注

    這篇文章主要為大家詳細介紹了Openlayers繪制地圖標注,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • javascript實現(xiàn)的元素拖動函數(shù)宿主為瀏覽器

    javascript實現(xiàn)的元素拖動函數(shù)宿主為瀏覽器

    這篇文章主要介紹了javascript實現(xiàn)的元素拖動,將相應(yīng)的元素對象的引用傳到函數(shù)中
    2014-07-07
  • JSscript標簽有哪些屬性

    JSscript標簽有哪些屬性

    本文介紹了JSscript標簽有哪些屬性,向HTML頁面中插入JavaScript的主要方法,就是使用script>元素.這個元素由Netscape創(chuàng)造并在NetscapeNavigator2中首先實現(xiàn).后來,這個元素被加入到正式的HTML規(guī)范中,下面小編來講解下JSscript標簽有哪些屬性,需要的朋友可以參考下
    2022-01-01

最新評論

洛宁县| 华亭县| 嫩江县| 宿州市| 墨江| 郯城县| 舞钢市| 九龙县| 桂林市| 顺平县| 通州区| 云安县| 邢台市| 皮山县| 南京市| 临安市| 康保县| 苏尼特右旗| 华容县| 南开区| 陵川县| 原平市| 安宁市| 中江县| 日照市| 濮阳县| 疏附县| 永康市| 申扎县| 乌审旗| 南乐县| 柯坪县| 弋阳县| 莱阳市| 酒泉市| 信宜市| 乐清市| 广安市| 盐津县| 徐汇区| 玉环县|