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

javascript每日必學(xué)之條件分支

 更新時(shí)間:2016年02月17日 16:43:43   投稿:lijiao  
javascript每日必學(xué)之條件分支,本文的主要內(nèi)容就是介紹的邏輯條件分支,循環(huán),感興趣的小伙伴們可以參考一下

大家好,我們今天接著前面的講,前面已經(jīng)大概了講了一下運(yùn)算符,今天的任務(wù)主要就是講解邏輯條件分支,循環(huán)。
我們先就來(lái)模擬一個(gè)邏輯塊,就用我們經(jīng)常接觸到的買(mǎi)車(chē)票來(lái)說(shuō)吧,車(chē)票的價(jià)格對(duì)不同的人價(jià)格是有差別的,但是我們都是一樣的去執(zhí)行買(mǎi)票這個(gè)行為,我們就可以把買(mǎi)票寫(xiě)成一個(gè)函數(shù)BuyTicket

//代碼
function BuyTicket(){
  console.log("請(qǐng)付款200元");
}

  大家看到了這個(gè)函數(shù)體,其實(shí)是有缺陷的,我們每個(gè)人去買(mǎi)票的時(shí)候,都是執(zhí)行這一個(gè)函數(shù),如果是軍人,或者是學(xué)生,這個(gè)函數(shù)就不適用了,他們 的折扣就沒(méi)有辦法使用了,我們只能多寫(xiě)一個(gè)函數(shù)來(lái)解決這樣的問(wèn)題,然后,我們的javascript語(yǔ)言已經(jīng)給我們提供了分支語(yǔ)句,我們就可以輕松的解決這樣的問(wèn)題了,我們可以把函數(shù)給修改一下,我們來(lái)看一下接下來(lái)修改后的代碼

function BuyTicket(identity){
  if(identity == "學(xué)生"){
    console.log("請(qǐng)付款100元");
  }
  if(identity == "軍人"){
    console.log("請(qǐng)付款150元");
  }
  if(identity == "普通人"){
    console.log("請(qǐng)付款200元");
  }
}

//模擬3種人去買(mǎi)票
BuyTicket("學(xué)生");
BuyTicket("軍人");
BuyTicket("普通人");

這樣使用是不是比前面的寫(xiě)法更科學(xué),后面我還會(huì)慢慢升級(jí),慢慢地大家就會(huì)明白程序的可愛(ài)之處。

通過(guò)上面的示例,我們不難看出,這樣一個(gè)函數(shù),就可以解決分支的問(wèn)題,我們現(xiàn)在來(lái)講解一下if分支語(yǔ)法

 if(條件){
  //執(zhí)行語(yǔ)句
}

條件就是我們前面講到的,非空對(duì)象,非未定義對(duì)象,布爾值true,非0數(shù)字,所有字符串,我們函數(shù)體里面是用的 == 比較符來(lái)運(yùn)算后得到一個(gè)布爾值來(lái)進(jìn)行的判斷,這也是我們經(jīng)常用到的一種方式,我們同樣可以用其他值來(lái)作為條件,再上一張圖片,讓大家來(lái)理解一下

 A處:條件全部成立,所以都打印出了“執(zhí)行了”幾個(gè)字;B處:條件都不是if條件的合格值,所以沒(méi)有執(zhí)行。注:這里我們都是使用的明值,有時(shí)候我們就會(huì)使用運(yùn)算后的返回值,就如前面的BuyTicket函數(shù)中所使用的 == 運(yùn)算,返回的如果是true,就執(zhí)行,如果返回的是false,肯定就不執(zhí)行,我們每次執(zhí)行BuyTicket時(shí),所傳入的值,就只能符合一個(gè)條件。

接下來(lái),我們學(xué)習(xí)一下完整的if分支

//第一種,兩個(gè)分支
if(條件){
  //執(zhí)行
}else{
  //執(zhí)行
}

直接上圖,一下就明白了

 A處:執(zhí)行了前面的代碼;B處條件不合格,所以就執(zhí)行了else塊里面的語(yǔ)句。很簡(jiǎn)單,不多作解釋。

兩個(gè)分支的情況,就是始終會(huì)執(zhí)行二者之一,不會(huì)兩個(gè)同時(shí)執(zhí)行

//第二種,多個(gè)分支
if(條件){
  //執(zhí)行
}else if(條件){
  //執(zhí)行
}else if(條件){
  //執(zhí)行
}…else if(條件){
  //執(zhí)行
}else{
  //執(zhí)行
}

多個(gè)分支的情況,始終只執(zhí)行其中之一,如果執(zhí)行其中的某一個(gè)分支后,就不會(huì)再繼續(xù)下面的條件比較,是一種效率比較高的方式,如果單純地去寫(xiě)if塊,就會(huì)像上面的BuyTicket函數(shù)一樣,那是一個(gè)效率很低的寫(xiě)法,三個(gè)if塊都會(huì)去比較所以,我們可以改造一下BuyTicket函數(shù)

//代碼 
funciton BuyTicket(identity){
  if("學(xué)生"){
    console.log("請(qǐng)付款100元");
  }else if("軍人"){
    console.log("請(qǐng)付款150元");
  }else{
    console.log("請(qǐng)付款200元");
  }
}

這種寫(xiě)法就比較科學(xué)了,執(zhí)行的效果也跟前面一樣,這樣寫(xiě)的好處就是執(zhí)行效率高了,條件逐一匹配,如果條件合格就執(zhí)行,而不會(huì)再去匹配其他的條件塊,這樣效率就比前面寫(xiě)的函數(shù)代碼優(yōu)秀,然而,還有一種多分支的替換寫(xiě)法,switch結(jié)構(gòu)體,先看語(yǔ)法

switch(表達(dá)式){
  case 常量表達(dá)式1:
    //執(zhí)行
    break;
  case 常量表達(dá)式1:
    //執(zhí)行
    break;
  case 常量表達(dá)式1:
    //執(zhí)行
    break;
  default:
    //執(zhí)行
    break;
}

從上往下執(zhí)行的過(guò)程,就是,用表達(dá)式與下面的常量表達(dá)式逐個(gè)匹配,如果匹配上了,就執(zhí)行里面的語(yǔ)句,記得,在每個(gè)case塊后面加上break關(guān)鍵字,不然,會(huì)依次執(zhí)行后面的case塊里面的語(yǔ)句,直到遇到break為止,所以這個(gè)特性我們也可以利用起來(lái),在合適的情況下,我們也會(huì)不寫(xiě)break關(guān)鍵字。好了,我們先就用switch結(jié)構(gòu)體來(lái)修改一下前面的BuyTicket函數(shù)

function BuyTicket(identity){
  switch(identity){
    case "學(xué)生":
      console.log("請(qǐng)付款100元");
      break;
    case "軍人":
      console.log("請(qǐng)付款150元");
      break;
    case "普通人":
      console.log("請(qǐng)付款200元");
      break;
    default:
      console.log("請(qǐng)出示身份證");
    }
}

default塊就是當(dāng)一個(gè)表達(dá)式都沒(méi)有匹配上情況,我們默認(rèn)執(zhí)行這一塊的代碼,因?yàn)檫@也是最后一個(gè)代碼塊,所以也可以省略break關(guān)鍵字

 

  總結(jié)一下,今天,只說(shuō)了條件分支之類(lèi)的知識(shí),if , if--else , if--else if--else , switch就這幾個(gè)條件分支語(yǔ)句塊,每天我也只能抽出一定的時(shí)間來(lái)寫(xiě),篇幅有限,下一篇就是寫(xiě)循環(huán)了,好了,大家先去消化了,下一篇我們繼續(xù)。

相關(guān)文章

  • Openlayers實(shí)現(xiàn)圖形繪制

    Openlayers實(shí)現(xiàn)圖形繪制

    這篇文章主要為大家詳細(xì)介紹了Openlayers實(shí)現(xiàn)圖形繪制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • javascript筆記之匿名函數(shù)和閉包

    javascript筆記之匿名函數(shù)和閉包

    這篇文章主要為大家詳細(xì)介紹了javascript筆記之匿名函數(shù)和閉包的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • 如何設(shè)置iframe高度自適應(yīng)在跨域情況下的可用方法

    如何設(shè)置iframe高度自適應(yīng)在跨域情況下的可用方法

    iframe的高度需要根據(jù)子頁(yè)面的實(shí)際高度來(lái)進(jìn)行調(diào)整,但是如果子頁(yè)面不在同一域中怎么辦?這時(shí)候腳本沒(méi)有辦法獲取到子頁(yè)面的高度,存在JavaScript跨域的問(wèn)題
    2013-09-09
  • DataGear開(kāi)發(fā)基于three.js的3D數(shù)據(jù)可視化看板的詳細(xì)代碼

    DataGear開(kāi)發(fā)基于three.js的3D數(shù)據(jù)可視化看板的詳細(xì)代碼

    DataGear?支持采用原生的HTML、JavaScript、CSS制作數(shù)據(jù)可視化看板,也支持導(dǎo)入由npm、vite等前端工具構(gòu)建的前端程序包,這篇文章主要介紹了DataGear制作基于three.js的3D數(shù)據(jù)可視化看板,需要的朋友可以參考下
    2024-02-02
  • js漢字轉(zhuǎn)拼音實(shí)現(xiàn)代碼

    js漢字轉(zhuǎn)拼音實(shí)現(xiàn)代碼

    漢字轉(zhuǎn)拼音,比較娛樂(lè)的一款應(yīng)用,感興趣的朋友可以了解下,或許對(duì)你學(xué)習(xí)js有所幫助
    2013-02-02
  • JavaScript第一個(gè)分水嶺之?dāng)?shù)組的基本操作

    JavaScript第一個(gè)分水嶺之?dāng)?shù)組的基本操作

    Arrays(數(shù)組) 數(shù)組是一個(gè)固定長(zhǎng)度的存儲(chǔ)相同數(shù)據(jù)類(lèi)型的數(shù)據(jù)結(jié)構(gòu),數(shù)組中的元素被存儲(chǔ)在一段連續(xù)的內(nèi)存空間中,下面這篇文章主要給大家介紹了關(guān)于JavaScript第一個(gè)分水嶺之?dāng)?shù)組的基本操作,需要的朋友可以參考下
    2022-04-04
  • js實(shí)現(xiàn)一個(gè)簡(jiǎn)易計(jì)算器

    js實(shí)現(xiàn)一個(gè)簡(jiǎn)易計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)一個(gè)簡(jiǎn)易計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • javascript針對(duì)cookie的基本操作實(shí)例詳解

    javascript針對(duì)cookie的基本操作實(shí)例詳解

    這篇文章主要介紹了javascript針對(duì)cookie的基本操作,結(jié)合實(shí)例形式較為詳細(xì)的分析了JavaScript操作cookie的基本技巧,并給出了一個(gè)JavaScript操作cookie的完整類(lèi),具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • JS獲取本機(jī)IP地址的2種方法

    JS獲取本機(jī)IP地址的2種方法

    我們?cè)陧?xiàng)目經(jīng)常遇到獲取本機(jī)IP地址的需求,下面這篇文章主要給大家介紹了關(guān)于JS獲取本機(jī)IP地址的2種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),本文適合新手,需要的朋友可以參考下
    2022-09-09
  • JS 邏輯判斷不要只知道用 if-else 和 switch條件判斷(小技巧)

    JS 邏輯判斷不要只知道用 if-else 和 switch條件判斷(小技巧)

    這篇文章主要介紹了JS 邏輯判斷不要只知道用 if-else 和 switch,在一些邏輯復(fù)雜度的增加,代碼中的 if/else 和 switch 會(huì)越來(lái)越臃腫。本文將帶你嘗試寫(xiě)出更優(yōu)雅的判斷邏輯,需要的朋友可以參考下
    2020-05-05

最新評(píng)論

呼图壁县| 汝州市| 兴化市| 四会市| 临猗县| 洮南市| 石林| 瓦房店市| 大冶市| 得荣县| 遂川县| 石台县| 且末县| 大兴区| 渭源县| 龙州县| 灵宝市| 昆山市| 天镇县| 长岛县| 宜君县| 南雄市| 长春市| 阆中市| 镇安县| 宁德市| 南涧| 肃北| 沙雅县| 盖州市| 宁晋县| 诸暨市| 阆中市| 钟祥市| 潼南县| 贵阳市| 南平市| 嫩江县| 清苑县| 福建省| 富裕县|