JavaScript流程控制語句python
學習要點:函數
1.語句的定義學習
2.if 語句ui
3.switch語句spa
4.do...while語句code
5.while語句對象
6.for語句blog
7.for...in語句three
8.break和continue語句ip
9.with語句
ECMA-262規定了一組流程控制語句。語句定義了ECMAScript中的主要語法,語句一般由一個或者多個關鍵字來完成給定的任務。諸如:判斷、循環、退出等
一.語句的定義
在ECMAScript中,全部的代碼都是由語句來構成的。語句代表執行過程當中的流程、限定與約定,形式上能夠是單行語句,或者由一對大括號「{}」括起來的複合語句,在語法描述中,複合語句總體能夠做爲一個單行語句處理。以下:
var box = 100; //單行語句 var age = 20; //另外一條單行語句 { //用花括號包含的語句集合,叫作複合語句,單位一個 //一對花括號,表示一個複合語句,處理時候,能夠當作一條單行語句來對待 //複合語句咱們通常叫作代碼塊 var height = 200; var width = 300; }
語句的種類
類型 |
子類型 |
語法 |
聲明語句 |
變量聲明語句 |
var box = 100; |
標籤聲明語句 |
label : box; |
|
表達式語句 |
變量賦值語句 |
box = 100; |
函數調用語句 |
box(); |
|
屬性賦值語句 |
box.property = 100; |
|
方法調用語句 |
box.method(); |
|
分支語句 |
條件分支語句 |
if () {} else {} |
多重分支語句 |
switch () { case n : ...}; |
語句的種類(續)
類型 |
子類型 |
語法 |
循環語句 |
for |
for (;;;) {} |
for ... in |
for ( x in x) {} |
|
while |
while () {}; |
|
do ... while |
do {} while (); |
|
控制結構 |
繼續執行子句 |
continue ; |
終端執行子句 |
break ; |
|
函數返回子句 |
return ; |
|
異常觸發子句 |
throw ; |
|
異常捕獲與處理 |
try {} catch () {} finally {} |
|
其餘 |
空語句 |
; |
with語句 |
with () {} |
二.if語句
if 語句即條件判斷語句,一共有三種格式:
1. if (條件表達式) 語句;
判斷條件返回布爾值,返回true(真)就執行裏面的語句,反之返回假,則不執行裏面的語句
var box = 100; if (box > 50) alert('box大於50'); //if裏面的括號(box > 50)返回的結果轉換成布爾值是 //true(真)的時候,則執行後面的一條語句,不然不執行 var box = 100; if (box > 50) alert('box大於50'); //兩行的if語句,判斷後也執行一條語句 alert('無論怎樣,我都能被執行到!'); //這條會被執行,能夠看出這個打印已經給if語句不要緊了 var box = 100; if (box < 50) { alert('box大於50'); //用複合語句包含,判斷後執行一條複合語句 alert('我被執行到!'); //複合語句就是一個代碼塊,判斷後執行的代碼塊 }
對於if語句括號裏的表達式,ECMAScript會自動調用Boolean()轉型函數將這個表達式的結果轉換成一個布爾值。若是值爲true,執行後面的一條語句,不然不執行。
PS:if語句括號裏的表達式若是爲true,只會執行後面一條語句,若是有多條語句,那麼就必須使用複合語句把多條語句包含在內。
PS2:推薦使用第一種或者第三種格式,一行的if語句,或者多行的if複合語句。這樣就不會由於多條語句而形成混亂。
PS3:複合語句咱們通常喜歡稱做爲:代碼塊。
2. if (條件表達式) {語句;} else {語句;}
判斷條件返回布爾值,返回true(真)就執行裏面的語句,反之返回假,則執行else裏面的語句
var box = 100; if (box > 50) { alert('box大於50'); //條件爲true,執行這個代碼塊 } else { alert('box小於50'); //條件爲false,執行這個代碼塊 }
3.if (條件表達式) {語句;} else if (條件表達式) {語句;} ... else {語句;}
多個條件判斷,那個條件返回true(真)就執行那個裏面的語句、下面的就不執行了,全部的條件都返回假,就執行else裏面的語句
var box = 100; if (box >= 100) { //若是知足條件,不會執行下面任何分支 alert('甲'); } else if (box >= 90) { alert('乙'); } else if (box >= 80) { alert('丙'); } else if (box >= 70) { alert('丁'); } else if (box >= 60) { alert('及格'); } else { //若是以上都不知足,則輸出不及格 alert('不及格'); }
三.switch語句
switch語句是多重條件判斷,用於多個值相等的比較。被判斷變量與那條判斷相等就執行那條裏面的語句
break關鍵字,中途退出當
var box = 1; switch (box) { //用於判斷box相等的多個值 case 1 : //case 1 至關於若是box==1,會執行alert('one'); alert('one'); break; //break;遇到break會退出判斷語句,用於防止語句的穿透 case 2 : alert('two'); break; case 3 : alert('three'); break; default : //至關於if語句裏的else,不然的意思 alert('error'); }
四.do...while循環語句
do...while語句是一種先運行,後判斷的循環語句。也就是說,無論條件是否知足,至少先運行一次循環體。
var box = 1; do { //先運行一次,再判斷 alert(box); //第一步打印box box++; //第二步累加,box等於2 } while (box <= 5); //第三步判斷box是否小於或者等於5,此時box等於2,條件成立開始循環
五.while循環語句
while語句是一種先判斷,後運行的循環語句。也就是說,必須知足條件了以後,方可運行循環體。
var box = 1; //若是是1,執行五次,若是是10,不執行 while (box <= 5) { //先判斷,再執行 alert(box); box++; }
六.for循環語句
for語句也是一種先判斷,後運行的循環語句。但它具備在執行循環以前初始變量和定義循環後要執行代碼的能力。
for (var box = 1; box <= 5 ; box++) { //第一步,聲明變量var box = 1; alert(box); //第二步,判斷box <=5 } //第三步,alert(box) //第四步,box++ //第五步,從第二步再來,直到判斷爲false
七.for...in循環語句,迭代循環語句,能夠循環出對象裏的數據
var duix = { //建立對象,對象有點像python裏的字典,由鍵值對組成 'xm':'林貴秀', 'nl':'32', 'xb':'男' }; for(var i in duix){ //循環出對象裏面的元素名稱,定義變量i,將每次循環到的數據賦值給i alert(i); //循環打印出i };
八.break和continue語句
break和continue語句用於在循環中精確地控制代碼的執行。其中,break語句會當即退出循環,強制繼續執行循環體後面的語句。而continue語句退出當前循環,繼續後面的循環
break關鍵字,當即退出循環
document.write()打印數據顯示到網頁上
for (var box = 1; box <= 10; box++) { if (box == 5) break; //若是box是5,就退出循環 document.write(box); document.write('<br />'); }
continue關鍵字,退出當前循環繼續後面的循環
for (var box = 1; box <= 10; box++) { if (box == 5) continue; //若是box是5,就退出當前循環 document.write(box); document.write('<br />'); }
九.with()語句,對象做用域設置
with語句的做用是將代碼的做用域設置到一個特定的對象中。
var box = { //建立一個對象 'name' : '李炎恢', //鍵值對 'age' : 28, 'height' : 178 }; var n = box.name; //從對象裏取值賦給變量 var a = box.age; var h = box.height; //能夠將上面的三段賦值操做改寫成: with (box) { //省略了box對象名 var n = name; var a = age; var h = height; }