欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javascript每日必學之條件分支

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

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

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

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

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

//模擬3種人去買票
BuyTicket("學生");
BuyTicket("軍人");
BuyTicket("普通人");

這樣使用是不是比前面的寫法更科學,后面我還會慢慢升級,慢慢地大家就會明白程序的可愛之處。

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

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

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

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

接下來,我們學習一下完整的if分支

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

直接上圖,一下就明白了

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

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

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

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

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

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

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

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

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

default塊就是當一個表達式都沒有匹配上情況,我們默認執(zhí)行這一塊的代碼,因為這也是最后一個代碼塊,所以也可以省略break關鍵字

 

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

相關文章

  • JavaScript forEach()遍歷函數(shù)使用及介紹

    JavaScript forEach()遍歷函數(shù)使用及介紹

    這篇文章主要介紹了JavaScript forEach()遍歷函數(shù)使用及介紹,本文講解了使用forEach遍歷數(shù)組的用法以及提前終止循環(huán)的一個方法技巧,需要的朋友可以參考下
    2015-07-07
  • Javascript之面向?qū)ο?-方法

    Javascript之面向?qū)ο?-方法

    本篇文章主要介紹了Javascript的面向?qū)ο?,對對象方法的調(diào)用、私有方法、靜態(tài)方法、公有方法、特權方法進行了一一介紹,需要的朋友可以看下
    2016-12-12
  • js中flexible.js實現(xiàn)淘寶彈性布局方案

    js中flexible.js實現(xiàn)淘寶彈性布局方案

    這篇文章主要為大家詳細介紹了js中flexible.js實現(xiàn)淘寶彈性布局方案,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-12-12
  • 微信小程序 彈窗自定義實例代碼

    微信小程序 彈窗自定義實例代碼

    這篇文章主要介紹了微信小程序 彈窗自定義實例代碼的相關資料,有時候做開發(fā)項目的時候需要根據(jù)客戶需求更改原系統(tǒng)的組件,這里就對小程序中彈窗進行更改,需要的朋友可以參考下
    2017-03-03
  • JavaScript三大重點同步異步與作用域和閉包及原型和原型鏈詳解

    JavaScript三大重點同步異步與作用域和閉包及原型和原型鏈詳解

    這篇文章主要介紹了JavaScript同步異步與作用域和閉包及原型和原型鏈,每個對象都連接到一個原型對象,并且它可以從中繼承屬性。所有通過對象字面量創(chuàng)建的對象都連接到object.prototype,它是JavaScript中的標配對象<BR>
    2022-07-07
  • 表單input項使用label同時引用Bootstrap庫導致input點擊效果區(qū)增大問題

    表單input項使用label同時引用Bootstrap庫導致input點擊效果區(qū)增大問題

    這篇文章主要介紹了表單input項使用label,同時引用Bootstrap庫,導致input點擊效果區(qū)增大問題的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-10-10
  • 基于Bootstrap的標簽頁組件及bootstrap-tab使用說明

    基于Bootstrap的標簽頁組件及bootstrap-tab使用說明

    這篇文章主要介紹了基于Bootstrap的標簽頁組件及bootstrap-tab使用說明,需要的朋友可以參考下
    2017-07-07
  • JavaScript通過Date-Mask將日期轉換成字符串的方法

    JavaScript通過Date-Mask將日期轉換成字符串的方法

    這篇文章主要介紹了JavaScript通過Date-Mask將日期轉換成字符串的方法,涉及javascript日期、數(shù)組及字符串操作的相關技巧,需要的朋友可以參考下
    2015-06-06
  • javascript框架設計之種子模塊

    javascript框架設計之種子模塊

    本文給大家介紹的是司徒正美的javascript框架設計的第二章種子模塊的相關內(nèi)容,算是一個小小的讀后感,小伙伴們可以參考下。
    2015-06-06
  • JavaScript Set與Map數(shù)據(jù)結構詳細分析

    JavaScript Set與Map數(shù)據(jù)結構詳細分析

    大家心里是否產(chǎn)生過這樣的疑問,JS中既然已經(jīng)有對象這種數(shù)據(jù)結構,我們?yōu)槭裁催€要再單獨去使用Set或者Map呢?下面這篇文章主要給大家介紹了關于ES6中Set和Map數(shù)據(jù)結構的相關資料,需要的朋友可以參考下
    2022-11-11

最新評論