在編程語言中語句通常使用一個或多個關鍵字來完成特定的任務。比如定義變量、賦值、條件判斷、循環(huán)等語句。下面我們將介紹JavaScript中大部分常用的語句,主要分以下幾類:
- 聲明和賦值語句
- 條件語句
- 循環(huán)語句
- 其它語句
聲明和賦值語句
這類語句是最基本的,比如聲明一個變量且給變量賦值,如下示例:
var myName,otherName; // 聲明變量語句myName = “hello world”; // 賦值語句otherName = “你好”; // 賦值語句
可以使用var 、let 及 const 關鍵字聲明一個變量,使用“=”等號給變量進行賦值。
條件語句
條件語句主要用來處理邏輯判斷,在編程中經(jīng)常使用,隨時都要用到條件語句進行邏輯選擇,其有以下幾種:
- if 語句 (如果…)
if…else 語句 (如果… 否則…)
if (條件表達式) {// 代碼塊……}else{// 代碼塊……}
if…else if… else(如果… 或如果… 否則…)
if (條件表達式) {// 代碼塊……} else if(條件表達式){// 代碼塊……}else{// 代碼塊……}
switch 語句 (類似if…else if…else)
switch(表達式){ case value: // 代碼塊…. break; case value: // 代碼塊…. break; case value: // 代碼塊…. break; default: // 代碼塊….}
我們通過幾個示例看看如何使用條件語句,如下示例:
let a = 1,b=5;// if 語句,當條件表達式 a < b 結果為true 時執(zhí)行對應{}中的代碼if(a < b){alert("a 小于 b")}// 使用 else ,當 a < b 結果為false時執(zhí)行else對應{}中的代碼if(a < b){alert("a 小于 b")}else{alert("a 大于 b")}
當你要判斷的條件可能性比較多時就需要使用 if … else if … else 了,如下示例:
let a = 1, b=5,c=10;if(a<b){ // 如果 a小于balert("a 小于 b")} else if( a < c){ // 如果a小于calert("a 小于 c")} else if( b < c){ // 如果b小于calert("b 小于 c")} else if( a == b){ // 如果a等于balert("a等于b")} else { // 除了以上幾種情況alert("其它情況")}
上面的語句也可以使用 switch 語句,如下示例:
let a = 1, b=5,c=10;switch(true) { case a<b: // 如果 a小于b alert("a 小于 b") break; case a<c: // 如果a小于c alert("a 小于 c") break; case b<c: // 如果b小于c alert("b 小于 c") break; case a==b: // 如果a等于b alert("a 等于 b") break; default: // 除了以上幾種情況 alert("其它情況")}
關于條件語句,需要注意幾點:
- 條件表達式可以是任何表達式,JavaScript會自動將其結果轉化成Boolean類型值。
- else if 可以有很多個,根據(jù)實際邏輯判斷而定。
- if 語句對應{}中的代碼如果只有一行時,可以省略{},但是建議不要這樣做,最好都帶上{}。
- switch 語句中的break 也是一個語句,它不是必需的,其含義是指當前case 對應的表達式求值完后不再繼續(xù)向下求值,如下示例:
switch(a){ case 0: alert(“如果a等于0時”); case 10: alert(“如果a等于10時”); break; case 15: alert(“如果等于15時”); break; default: alert(“其它”);}
上面當case 0 時,switch 語句不會停止,而是繼續(xù)向下執(zhí)行case 10,直到case 10 中的break語句才結束。也就是說 a 和 0 比較后,繼續(xù)和 10 做比較,這樣就可以實現(xiàn)和多個條件比較,相當于 if( a ==0 || a == 10) {}。
循環(huán)語句
此類語句也是經(jīng)常使用到的,在編程中經(jīng)常需要重復計算一些東西,這時就需要循環(huán)語句。循環(huán)語句,都會有一個條件表達式如同if語句一樣,這里含義是指當條件表達式值為true時結束循環(huán)。
JavaScript中有以下幾種:
do – while 語句
這是一種后測試循環(huán)語句,通俗講就是先執(zhí)行循環(huán)體中的代碼,再判斷循環(huán)中的條件表達式,也就是在條件表達式求值前,至少循環(huán)體內(nèi)的代碼執(zhí)行了一次,語法如下:
do {// 代碼塊} while (條件表達式)
示例如下:
var i = 0;do{i += 2;} while ( i < 10 )
while 語句
這個語句和 do-while 語句正好相反,是前測試循環(huán)語句,就是先求表達式的值,然后再去執(zhí)行循環(huán)體中的代碼,因此如果表達式值為false,其循環(huán)體就不會執(zhí)行,while語句有可能永遠都不會執(zhí)行。
語法如下:
while (條件表達式){// 代碼塊}
示例如下:
var i = 0;while ( i < 10){i + = 2;}
for 語句
for 語句也是一種前測試循環(huán)語句,它不同之處是可以再執(zhí)行循環(huán)體之前定義并初始化變量和定義循環(huán)后要執(zhí)行的代碼,語法如下:
for( 初始變量; 條件表達式; 循環(huán)后執(zhí)行的表達式;){// 代碼塊}
for 循環(huán)中括號里面,條件表達式是必需的,其它2個表達式可以沒有。且初始化部分的變量可以是一個外部變量。
示例1:
// 循環(huán)打印出1 到 100for( var i =0; i<100: i++){console.log(i+1); // 因為初始是0,所以這里加1,當然你也可以把i的初始值設置為1}
示例2:
// 只有條件表達式,這個類似于while語句了,一般不建議這樣寫var count = 10;var i = 0;for( ; i<count; ){console.log(i); i++;}
示例3:
// 無限循環(huán),這種情況沒有任何意義,不建議使用for( ; ; ){console.log(”);}
for 循環(huán)語句是平時使用較多的語句,像do-while 和 while 都很少使用,因為 for 語句更加靈活,建議使用。
for in 語句
這是一種精準的迭代語句,和for 語句不同之處是它往往用來迭代一個對象中的屬性,對于由鍵值對組成的對象類型而言使用for語句就顯得不適用了,for in 語句語法如下:
for (key in object) {// 代碼塊}
如上key 值對象中的屬性名稱,object 就是一個對象,這個對象可以是JavaScript中的object類型或者dom 節(jié)點等。
示例如下:
var obj = {a: 0, b: 1, c: 2, d: 3}// 迭代obj對象for (key in obj) {console.log(key); // 輸出屬性名稱 console.log(obj[key]); // 輸出對應的屬性值}// 結果如下// a、b、c、d// 0、1、2、3
注意 for in 中的對象不能是 null 或 undefined,否則會拋出錯誤。雖然在 ECMAScript 5 中不會拋出錯誤,只是不執(zhí)行循環(huán)體而已,所以在寫代碼之前,判斷迭代的對象是否是null或undefined。
break 和 continue 語句
這2個語句,通常配合循環(huán)語句使用。break 是指立即結束當前循環(huán),退出循環(huán)體,continue 指不執(zhí)行本次循環(huán)體直接跳過,繼續(xù)執(zhí)行下次循環(huán)。
示例如下:
// 使用break var num = 0;for( var i=0; i< 10; i++){ // 當i==5 時 立即結束循環(huán)if( i % 5 == 0) { break; } num ++ ;}alert(num); // 結果是 4// 使用 continue var num = 0;for( var i=0; i< 10; i++){ // 當i==5 時 跳過本次循環(huán),繼續(xù)下次循環(huán)if( i % 5 == 0) { continue ; } num ++ ;}alert(num); // 結果是 8
with 語句
這個語句不經(jīng)常使用,它的作用是將代碼的作用域設置到一個特定的對象中。語法如下:
with (表達式) {// 代碼}
我們通過一個示例,看看它到底是干什么的:
var gs = location.search.substring(1);var hostname = location.hostname;var url = location.href;
上面的代碼是一段用來獲取瀏覽器信息的,分別獲取了3個對象,我們下面使用with語句簡化這段代碼:
with(location){var gs = search.substring(1); var hostname = hostname; var url = href;}
是不是方便了很多,with 將其作用于設置為location對象,這樣就不必每次使用location對象取值。
但是在實際使用中,不建議使用with語句,因為它會導致性能下降,同時不易閱讀和調(diào)試。
結語
本節(jié)學習了JavaScript中語句的使用,主要分條件、循環(huán)、定義賦值等語句。語句是編程語言中重要的組成部分,相當于你要寫一篇作文,沒有語句是不行的,不然整篇作文將無法閱讀,計算機語言也是如此。
到此,已經(jīng)學習了JavaScript中的大部分內(nèi)容,現(xiàn)在你可以寫一些簡單的腳本了,快試試吧。