淺談JavaScript中的分支結(jié)構(gòu)
說到JavaScript中的分支結(jié)構(gòu),我們就不得不提到流程控制這個詞,我們所有的程序都是由數(shù)據(jù)和算法組成的。
程序=數(shù)據(jù)+算法
通常我們所說的算法都可以通過"順序","分支","循環(huán)"三種結(jié)構(gòu)來組合完成。
在ECMA中規(guī)定了一些語句(也稱為流程控制語句,分支結(jié)構(gòu)語句),從本質(zhì)上來說,這些語句定義了ECMAScript中的主要語法,語句通常使用一個或者多個關(guān)鍵字來完成給定任務(wù)。
1.1 if 語句
if 語句 - 只有當(dāng)指定條件為 true 時,使用該語句來執(zhí)行代碼
if (條件) { 只有當(dāng)條件為 true 時執(zhí)行的代碼 }
if...else 語句 - 當(dāng)條件為 true 時執(zhí)行代碼,當(dāng)條件為 false 時執(zhí)行其他代碼
if (條件) { 當(dāng)條件為 true 時執(zhí)行的代碼 } else { 當(dāng)條件不為 true 時執(zhí)行的代碼 }
if...else if....else 語句 - 使用該語句來選擇多個代碼塊之一來執(zhí)行
if (條件 1) { 當(dāng)條件 1 為 true 時執(zhí)行的代碼 } else if (條件 2) { 當(dāng)條件 2 為 true 時執(zhí)行的代碼 } else { 當(dāng)條件 1 和 條件 2 都不為 true 時執(zhí)行的代碼 }
1.2 switch 語句
使用 switch 語句來選擇要執(zhí)行的多個代碼塊之一。
switch(n) { case 1: 執(zhí)行代碼塊 1 break; case 2: 執(zhí)行代碼塊 2 break; default: n 與 case 1 和 case 2 不同時執(zhí)行的代碼 }
工作原理:首先設(shè)置表達式 n(通常是一個變量)。隨后表達式的值會與結(jié)構(gòu)中的每個 case 的值做比較。如果存在匹配,則與該 case 關(guān)聯(lián)的代碼塊會被執(zhí)行。請使用 break 來阻止代碼自動地向下一個 case 運行。
default 關(guān)鍵詞
請使用 default 關(guān)鍵詞來規(guī)定匹配不存在時做的事情:
var day=new Date().getDay(); switch (day) { case 6: x="Today it's Saturday"; break; case 0: x="Today it's Sunday"; break; default: x="Looking forward to the Weekend"; }
解釋:今天不是周六或者周日才會執(zhí)行的代碼段。
1.3 if 與 switch 的比較
switch case vs else if switch case 僅用于等于比較的條件 else if 可用任意條件 if(Boolean(條件)) else if() 自帶隱式轉(zhuǎn)換,將條件轉(zhuǎn)為boolean 效率稍微低 switch case 不帶隱式轉(zhuǎn)換的等于比較,效率稍微高
以上這篇淺談JavaScript中的分支結(jié)構(gòu)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript跨瀏覽器獲取頁面中相同class節(jié)點的方法
這篇文章主要介紹了JavaScript跨瀏覽器獲取頁面中相同class節(jié)點的方法,本文講解使用getELementsByClassName函數(shù)解決這個需求,并給了一個開源的getELementsByClassName函數(shù)實現(xiàn),功能更加強大,需要的朋友可以參考下2015-03-03JavaScript回調(diào)(callback)函數(shù)概念自我理解及示例
此文適合JavaScript入門級選手閱讀,在JavaScript里什么叫Callback“回調(diào)函數(shù)”,把方法b當(dāng)做一個參數(shù)傳遞個方法a,當(dāng)方法a執(zhí)行完后執(zhí)行另外一個指定函數(shù)(這里是b函數(shù)),感興趣的朋友可以了解下哈2013-07-07