JavaScript基礎(chǔ)之流程控制語(yǔ)句的用法
第三部分:流程控制語(yǔ)句
JavaScript代碼是書寫位置:
JavaScript代碼應(yīng)該寫在<script type=”text/javascript”></script>這一對(duì)標(biāo)記中。
或者作為外部引用<script src="JavaScript代碼路徑"></script>
JavaScript的每一句代碼請(qǐng)用分號(hào)作為結(jié)束。
輸出語(yǔ)句
1、控制臺(tái)輸出:console.log();
它可以在控制臺(tái)中輸出一些信息,輸出的信息就是console.log()中圓括號(hào)的內(nèi)容。
在調(diào)試程序的時(shí)候回經(jīng)常用這個(gè)語(yǔ)句。
2、彈出框輸出:
alert();
使用alert可以在網(wǎng)頁(yè)上彈出一個(gè)提示框顯示alert()的圓括號(hào)中的信息。
prompt();
使用prompt可以在網(wǎng)頁(yè)上彈出一個(gè)輸入框,并且以prompt()的圓括號(hào)中的信息作為提示信息。
confirm();
包含確定和取消的彈出框。
3、頁(yè)面輸出:document.write();
直接會(huì)將內(nèi)容顯示在頁(yè)面上。
選擇語(yǔ)句
if....else語(yǔ)句
if(判斷條件/boolean值){
//滿足條件會(huì)執(zhí)行下面的代碼
代碼1;
}else {
//當(dāng)上面的條件不滿足,或者boolean的值為false的時(shí)候會(huì)執(zhí)行下面的代碼2
代碼2
}
此外,else后還可以繼續(xù)加if判斷
if(判斷條件/boolean值){
//滿足條件會(huì)執(zhí)行下面的代碼
代碼1;
}else if(判斷條件) {
//當(dāng)上面的條件不滿足,或者boolean的值為false的時(shí)候會(huì)執(zhí)行下面的代碼2
代碼2
}
else if(判斷條件)
。。。。。
else {
最后代碼
}
Switch ...case語(yǔ)句
用來(lái)判斷多個(gè)可能出現(xiàn)的值
switch 語(yǔ)句與 if 語(yǔ)句的關(guān)系最為密切,而且也是在其他語(yǔ)言中普遍使用的一種流控制語(yǔ)句。
switch (expression) {
case value: statement
break;
case value: statement
break;
case value: statement
break;
case value: statement
break;
default: statement
}
switch 語(yǔ)句中的每一種情形(case)的含義是:“如果表達(dá)式等于這個(gè)值(value),則執(zhí)行后面的語(yǔ)句(statement)”。而 break 關(guān)鍵字會(huì)導(dǎo)致代碼執(zhí)行流跳出 switch 語(yǔ)句。如果省略 break 關(guān)鍵字,就會(huì)導(dǎo)致執(zhí)行完當(dāng)前 case 后,繼續(xù)執(zhí)行下一個(gè) case。通過(guò)為每個(gè) case 后面都添加一個(gè) break 語(yǔ)句,就可以避免同時(shí)執(zhí)行多個(gè)case 代碼的情況。
也可以多種情況混合。
switch (i) {
case 25:
/* 合并兩種情形 */
case 35:
alert("25 or 35");
break;
case 45:
alert("45");
break;
default:
alert("Other");
}
需要注意的是switch 語(yǔ)句在比較值時(shí)使用的是全等操作符,因此不會(huì)發(fā)生類型轉(zhuǎn)換(例如,
字符串"10"不等于數(shù)值 10)。
break與continue語(yǔ)句
break是在循環(huán)內(nèi)部結(jié)束合格循環(huán)。
continue是在循環(huán)的內(nèi)部結(jié)束本次循環(huán),開始下一次循環(huán):
循環(huán)語(yǔ)句
for循環(huán)是反復(fù)執(zhí)行同一段代碼。
for(var i = 1; 判斷條件; i++){
要循環(huán)的代碼塊:
}
當(dāng)程序運(yùn)行到for的時(shí)候,會(huì)先聲明一個(gè)變量i,并且賦值為1,判斷i是否滿足后面的判斷條件,如果滿足,執(zhí)行下面的要循環(huán)的代碼塊,代碼 塊執(zhí)行完成之后再執(zhí)行i++,再判斷判斷條件是否滿足,如果滿足再次按照上面的流程執(zhí)行,如果不滿足,結(jié)束for循環(huán)。
for循環(huán)還可以用于嵌套,實(shí)現(xiàn)復(fù)雜的運(yùn)算,冒泡排序就用到了for循環(huán)的嵌套。下面舉兩個(gè)for循環(huán)嵌套的例子。
打印直角三角形,
for (var i = 1; i <= 10; i++) {
for (var j = 1; j <= i; j++){
document.write("☆");
}
document.write("<br/>");
}
打印99乘法表
for (var i = 1; i < 10; i++) {
for (var j = 1; j <= i; j++) {
document.write(j + "*" + i + "=" + i * j);// 1 * 1 = 1
document.write(" ");
}
document.write("<br/>");
}
for in循環(huán)
for-in 用于遍歷數(shù)組或者對(duì)象的屬性(對(duì)數(shù)組或者對(duì)象的屬性進(jìn)行循環(huán)操作)。
舉個(gè)例子
var x
var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"
for (x in mycars)
{
document.write(mycars[x] + "<br />")
}
while循環(huán)
while(判斷條件/boolean){
代碼塊
}
當(dāng)代碼執(zhí)行到while的時(shí)候,會(huì)先判斷判斷條件是否為true,如果為true,那么會(huì)執(zhí)行while大括號(hào)中的代碼塊,代碼塊執(zhí)行完畢以后,再次回到while中再進(jìn)行判斷,如果為true,再次執(zhí)行while大括號(hào)中的代碼塊,并且再次回while,如果為false就不執(zhí)行。
注意:將來(lái)在寫代碼的時(shí)候一定要注意循環(huán)的判斷條件不能一直為true,否則會(huì)成為一個(gè)死循環(huán)。
do...while循環(huán)
do-while 語(yǔ)句是一種后測(cè)試循環(huán)語(yǔ)句,即只有在循環(huán)體中的代碼執(zhí)行之后,才會(huì)測(cè)試出口條件。
換句話說(shuō),在對(duì)條件表達(dá)式求值之前,循環(huán)體內(nèi)的代碼至少會(huì)被執(zhí)行一次。
do {
statement
} while (expression);
do...while語(yǔ)句在開發(fā)中并不怎么用,用的最多的還是for循環(huán),以及for循環(huán)嵌套。
補(bǔ)充:
Function函數(shù)對(duì)象
函數(shù)申明式
function fn(){
// 函數(shù)體
}
函數(shù)表達(dá)式(匿名函數(shù))
var fn = function(){
// 函數(shù)體
}
// fn表示函數(shù)名稱
// 函數(shù)表達(dá)式通常又叫匿名函數(shù) 因?yàn)闆](méi)有函數(shù)名
函數(shù)的調(diào)用
fn();// 注意:函數(shù)只申明不調(diào)用是不會(huì)執(zhí)行的
函數(shù)的參數(shù)
// 申明
function 函數(shù)名(形參1,形參2,形參3,){
// 函數(shù)體
}
// 調(diào)用
函數(shù)名(實(shí)參1,實(shí)參2,實(shí)參3);
函數(shù)名(實(shí)參1);// 這樣寫也不會(huì)有問(wèn)題
函數(shù)名(實(shí)參1,實(shí)參2,實(shí)參3,實(shí)參4);// 這樣寫也不會(huì)有問(wèn)題
// 注意:函數(shù)的實(shí)參個(gè)數(shù)可以和形參的個(gè)數(shù)不同
函數(shù)的返回值
function 函數(shù)名(){
return 要返回值;
}
// 注意:函數(shù)不寫返回值時(shí)默認(rèn)的返回值是undefined
函數(shù)的遞歸:函數(shù)在內(nèi)部調(diào)用自身函數(shù)叫遞歸
function fn(){
fn();
}
fn();
函數(shù)的回調(diào):被當(dāng)做參數(shù)傳遞的函數(shù)叫回調(diào)函數(shù)
function fn1(){
console.log(“我是回調(diào)函數(shù)”);
}
function fn2(parameter){
parameter(); // 調(diào)用函數(shù)
// 這里的parameter是形參 代表傳進(jìn)來(lái)的函數(shù)fn1
}
fn2(fn1);// fn1就是一個(gè)回調(diào)函數(shù)
相關(guān)文章
通過(guò)說(shuō)明與示例了解js五種設(shè)計(jì)模式
這篇文章主要介紹了通過(guò)說(shuō)明與示例了解js五種設(shè)計(jì)模式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下2019-06-06
JavaScript實(shí)現(xiàn)帶并發(fā)限制的異步調(diào)度器
這篇文章主要為大家詳細(xì)介紹了如何基于JS實(shí)現(xiàn)一個(gè)帶并發(fā)限制的異步調(diào)度器?Scheduler,保證同時(shí)運(yùn)行的任務(wù)最多有N個(gè),感興趣的小伙伴可以了解下2024-03-03
JS中map與forEach無(wú)法跳出循環(huán)及every和some的使用
在我們平時(shí)使用習(xí)慣中,for循環(huán)里要跳出整個(gè)循環(huán)是使用break,但在數(shù)組中用forEach循環(huán)或者map如要退出整個(gè)循環(huán)使用break會(huì)報(bào)錯(cuò),使用return也不能跳出循環(huán),下面這篇文章主要介紹了關(guān)于JS中map與forEach無(wú)法跳出循環(huán)及every和some的使用的相關(guān)資料,需要的朋友可以參考下2023-05-05
JavaScript Array擴(kuò)展實(shí)現(xiàn)代碼
最近看了一下developer.mozilla.org里的東西,發(fā)現(xiàn)它為Array對(duì)象添加了不少generic method,趕得上Prototype的熱心程度。2009-10-10
Bootstrap基本組件學(xué)習(xí)筆記之分頁(yè)(12)
這篇文章主要為大家詳細(xì)介紹了Bootstrap基本組件學(xué)習(xí)筆記之分頁(yè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
js自動(dòng)生成的元素與頁(yè)面原有元素發(fā)生堆疊的解決方法
js自動(dòng)生成的元素與頁(yè)面原有元素發(fā)生堆疊通過(guò)去除浮動(dòng),給原有元素(商品擴(kuò)展信息部分)加上clear:both; 果然正常了2013-10-10
JavaScript運(yùn)動(dòng)框架 解決速度正負(fù)取整問(wèn)題(一)
這篇文章主要為大家詳細(xì)介紹了JavaScript運(yùn)動(dòng)框架的第一部分,解決速度正負(fù)取整問(wèn)題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
JavaScript中的this關(guān)鍵字介紹與使用實(shí)例
JavaScript其實(shí)一門基于或者說(shuō)是面向?qū)ο蟮恼Z(yǔ)言,這樣的話,this這個(gè)關(guān)鍵字,在類的內(nèi)部就顯得尤為重要2013-06-06

