javaScript之分支判斷與內建對象

來源:互聯網
上載者:User

標籤:3.3   截取   跳出迴圈   rand   color   split   常用方法   錯誤   第一個   

一,分支結構
  • 單一選擇結構(if)
  • 二路選擇結構(if/else)
  • 內聯三元運算子 ?:
  • 多路選擇結構(switch)
var condition = true; if (condition) {      alert("我將出現!");  }  condition = false; if (condition) {      alert("我不會出現!");  } else {      alert("我會出現!");  }  condition ="some string"; if (condition) {      alert("可以直接對任何資料類型進行if判斷,在判斷時計算會自動將其轉換成布爾值!");  } var val = condition?"當為true時我將被返回":"當為false時我將被返回";  alert(val);//將輸出"當為true時我將被返回"

  對於if..else語句,如果要執行的語句只有一條,可以不使用“{}”,但這種寫法並不推薦.但確實這樣可以簡化代碼:

var str="one";if (str=="one")alert("str的值為字串‘one’";else alter("not one"))

  雖然JavaScript中沒有if …. elseif 結構,但可以使用if…else的簡寫方式得到

 //為了判斷使用者輸入的成績的範圍,我們使用了多重嵌套的if .. else語句    var num = window.prompt("請輸入XXX的成績!","");    num *=1;//window.prompt方法始終只返回字串,用這樣的方法將其轉換成數字    if (isNaN(num) && num) {//不能將其它值轉換成數字時將返回NaN,可以用內建的isNaN判斷值是否是NaN        alert("您輸入的不是一個數字!");    } else { if (num<=100 && num>=90) {            alert("Excellent!");        } else { if (num =80) {                alert("Good!");            } else { if (num < 80 && num >= 70) {                    alert("So so!");                } else { if (num < 70 && num >=60) {                        alert("Be careful !!!");                    } else { if (num < 60 && num >= 0) {                            alert("Oh, NO!");                        } else {                            alert("USB!");                        }                    }                }            }        }        } //上面的代碼由於用了多重的if..else嵌套,顯得非常的混亂,簡化只須將else後的花括弧去掉就行了    // if (...) {...}這算是一句    if (isNaN(num)) {        alert("您輸入的不是一個數字!");    } else if (num<=100 && num>=90) {        alert("Excellent!");    } else if (num =80) {        alert("Good!");    } else if (num < 80 && num >= 70) {        alert("So so!");    } else if (num < 70 && num >=60) {        alert("Be careful !!!");    } else if (num < 60 && num >= 0) {        alert("Oh, NO!");    } else {        alert("USB!");    } //看上去清晰多了,但要注意的是,JavaScript中沒有elseif 這樣的文法,所以上的else if之間是有空格的

  用於進行多次判斷的switch語句

switch(condition) { //switch本來就是跳轉的意思(又稱為“開關”),所以switch語句就是判斷情況,跳到符合的情況開始執行        case 4:            alert("c的值是4"); case 3:            alert("c的值肯定大於等於3"); case 2:            alert("c的值肯定大於等於2"); case 1:            alert("c的值肯定大於等於1");    } //可以使用 break來只執行符合一個條件的語句    switch(condition) { case 4:            alert("c的值是4"); break; case 3:            alert("c的值是3"); break; case 2:            alert("c的值是2"); break; case 1:            alert("c的值是1"); break;    } var condition="one"; switch(condition) {//switch不但可以用來判斷數字,還可以判斷字串,甚至是不定的變數        case "one":            alert("condition的值是字串‘one‘ !"); break; case "three":            alert("condition的值是字串‘three‘ !"); break; case "four":            alert("condition的值是字串‘four‘ !"); break; case "five":            alert("condition的值是字串‘five‘ !"); break; default://當所有情況都不匹配時,將執行default語句後的            alert("我們要萬無一失!condition什麼都不是!");

  

二,迴圈

迴圈用來指明當某些條件保持為真時要重複的動作。當條件得到滿足時,就跳出迴圈語句。在JavaScript中有四種迴圈結構可用。

  • 由計數器控制的迴圈(for)
  • 在迴圈的開頭測試運算式(while)
  • 在迴圈的末尾測試運算式(do/while)
  • 對對象的每個屬性都進行操作(for/in)

for 語句指定了一個計數器變數,一個測試條件,以及更新該計數器的操作。在每次迴圈的重複之前,都將測試該條件。如果測試成功,將運行迴圈中的代碼。如果測試不成功,不運行迴圈中的代碼,程式繼續運行緊跟在迴圈後的第一行代碼。在執行該迴圈後,電腦變數將在下一次迴圈之前被更新。

for (var i=0;i<10;i++) {//for迴圈的圓括弧裡面須放三個句子,    //分別是1.初使化計數器 2.判斷條件 更新計數器        alert("i當前的值為"+i);    }

  其實for迴圈語句完全可以這樣寫,下面的代碼和上面的效果是一樣的(雖然沒有必要,但從這樣的代碼可清楚看出for迴圈如何工作的)

var i=0;//迴圈進行之前初始化i    for(;;) {//for語句括弧中必須有三個語句,但可以為空白語句        if (i<10) {//當條件為true時才執行代碼            alert("i當前的值為"+i);        } else {//當條件為false時就退出迴圈            break;//使用break退出迴圈 }    }

  一個死迴圈最能說明while的工作方式了(但這樣的錯誤我們絕不能在實際編程中出現)

while (true) {        alert("你關不掉我的!");//這就是網上那些所謂的高手寫的“關不上的窗(周傳雄新歌,力薦)”代碼    }

  do..while迴圈與while迴圈不同之處在於它至少將代碼塊中的代碼執行一次

do {        alert("我肯定會出現一次的");    } while (false);

  

三,常用內建對象

  所謂內建對象就是ECMAScript提供出來的一些對象,我們知道對象都是有相應的屬性和方法,其實這裡很多的js對象跟python的很多文法類似

3.1 數組 Array

1.數組的建立方式

  • 字面量方式建立(推薦大家使用這種方式,簡單粗暴)
var colors = [‘red‘,‘color‘,‘yellow‘];

  

  • 使用建構函式(後面會講)的方式建立 使用new關鍵詞對建構函式進行建立對象
 var colors2 = new Array();

  

2,數組的賦值

var arr = [];//通過下標進行一一賦值arr[0] = 123;arr[1] = ‘哈哈哈‘;arr[2] = ‘嘿嘿嘿‘

  

3 數組的常用方法

方法 描述
concat() 把幾個數組合并成一個數組
join() 返回字串,其中包含了串連到一起的數組中的所有元素,元素由指定的分割符分割開來
pop() 移除數組的最後一個元素
shift() 移除數組的第一個元素
unshift() 往數組的開頭添加一個元素,並且返回新的長度
slice(start,end) 返回數組的一段
push() 往數組的最後添加一個元素,並返回新的長度
sort() 對數組進行排序
reverse() 對數組進行反轉
length 它是一個屬性,唯一的一個,擷取數組的長度,可以結合for迴圈遍曆操作
3.2 字串String
方法 描述
charAt() 返回指定索引的位置的字元
concat() 返回字串值,表示兩個或多個字串的拼接
match() 返回Regex模式對字串進行產找,並將包含尋找結果作為結果返回(後面Regex課程會詳細講)
replace(a,b) 字串b替換了a
search(stringObject) 知名是否存在相應匹配。如果找到一個匹配,search方法將返回一個整數值,指明這個匹配距離字串開始的位移位置。如果沒有找到匹配,返回-1
slice(start,end) 返回start到end-1之間的字串,索引從0開始
split(’a‘,1) 字串拆分,以a拆分,第一個參數返回數組的最大長度
substr(start,end) 字串截取,左閉右開
toUpperCase() 返回一個新的字串,該字串字母都變成了大寫
toLowerCase() 返回一個新的字串,該字串字母都變成了小寫
//1.將number類型轉換成字串類型var num = 132.32522;var numStr = num.toString()console.log(typeof numStr)

  

//四捨五入var newNum = num.toFixed(2)console.log(newNum)

  

3.3 Date日期對象

建立日期對象只有建構函式一種方式,使用new關鍵字

//建立了一個date對象var myDate = new Date();

  常用的方法

文法 含義
getDate() 根據本地時間返回指定日期對象的月份中的第幾天(1-31)。
Date() 根據本地時間返回當天的日期和時間
getMonth() 根據本地時間返回指定日期對象的月份(0-11)
getFullYear() 根據本地時間返回指定日期對象的年份(四位元年份時返回四位元字)
getDay() 根據本地時間返回指定日期對象的星期中的第幾天(0-6)
getHours() 根據本地時間返回指定日期對象的小時(0-23)
getMinutes() 根據本地時間返回指定日期對象的分鐘(0-59)
getSeconds() 根據本地時間返回指定日期對象的秒數(0-59)
3.4 Math 內建對象

  常用內建對象

方法 含義
Math.floor() 向下取整,稱為"地板函數"
Math.ceil() 向上取整,稱為‘地板函數‘
Math.max(a,b) 求a和b中的最大值
Math.min(a,b) 求a和b中的最小值
Math.random() 隨機數,預設0-1之間的隨機數,公式min+Math.random()*(max-min),求min~max之間的數

javaScript之分支判斷與內建對象

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.