您好,登錄后才能下訂單哦!
這篇文章主要講解了“javascript的語(yǔ)句結(jié)構(gòu)有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“javascript的語(yǔ)句結(jié)構(gòu)有哪些”吧!
javascript有三種語(yǔ)句結(jié)構(gòu):1、順序結(jié)構(gòu);自上而下,逐行執(zhí)行。2、選擇分支結(jié)構(gòu);多條路徑,根據(jù)不同條件,只執(zhí)行其中的一條或選擇性的執(zhí)行多條。3、循環(huán)結(jié)構(gòu);重復(fù)執(zhí)行某些代碼。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
順序結(jié)構(gòu)
自上而下,逐行執(zhí)行,先來(lái)后到,相同語(yǔ)句,后面的覆蓋前面的
選擇分支結(jié)構(gòu)
多條路徑,根據(jù)不同條件,只執(zhí)行其中的一條或選擇性的執(zhí)行多條
循環(huán)結(jié)構(gòu)
重復(fù)執(zhí)行某些代碼,代替某些重復(fù)性操作,減少代碼冗余,提升效率
兩條路徑二選一,做或者不做,有或者沒(méi)有,執(zhí)行或不執(zhí)行;
//語(yǔ)法結(jié)構(gòu): if(){} if //語(yǔ)句名 () //是否執(zhí)行的條件,true 或 false {} //執(zhí)行的內(nèi)容 //例: if(true){ console.log("hello");//"hello"---if括號(hào)中是true則輸出hello,若為false則不輸出 }
有兩個(gè)選項(xiàng),兩者必定執(zhí)行一個(gè)
//當(dāng)條件判斷為true時(shí),執(zhí)行花括號(hào)內(nèi)的語(yǔ)句,如果條件為假false,跳過(guò)花括號(hào)內(nèi)的語(yǔ)句執(zhí)行else里的內(nèi)容 if(條件){ 執(zhí)行語(yǔ)句1,條件為真時(shí)執(zhí)行 }else{ 執(zhí)行語(yǔ)句2,條件為假時(shí)執(zhí)行 }
通常if的括號(hào)中填寫(xiě)一個(gè)判斷語(yǔ)句,判斷是真還是假if()括號(hào)里面的東西我們通常也叫它邏輯點(diǎn),判斷點(diǎn) 當(dāng)括號(hào)內(nèi)的內(nèi)容為true時(shí)真,為false時(shí)假,true或false是布爾值(boolean)代表真和假,需要通過(guò)邏輯運(yùn)算符得到
先來(lái)看一個(gè)例題
if(1){ //括號(hào)內(nèi)填寫(xiě)數(shù)字"1"會(huì)發(fā)生什么 console.log("會(huì)輸出么?"); //會(huì)輸出嗎?---會(huì)在控制臺(tái)輸出內(nèi)容 }
數(shù)字1是數(shù)值型,不是布爾值,更不是true為什么會(huì)執(zhí)行花括號(hào)內(nèi)的語(yǔ)句了呢?
在一些特定的情況下,計(jì)算機(jī)會(huì)進(jìn)行一些隱式轉(zhuǎn)換,他和強(qiáng)制類型轉(zhuǎn)換不一樣,他不需要你做什么,會(huì)自動(dòng)對(duì)數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換
在運(yùn)算中,if(小括號(hào))中的語(yǔ)句會(huì)發(fā)生隱式類型轉(zhuǎn)換
//if隱式轉(zhuǎn)換例題 var a = "1",b = 2; console.log(a + b);//12---+號(hào)進(jìn)行字符串拼接,拼成12,而不是進(jìn)行數(shù)值運(yùn)算等于3
"+"號(hào)有兩種含義:
"+"號(hào)兩邊都是數(shù)字:此時(shí)是數(shù)學(xué)中的"+"號(hào)運(yùn)算符,將兩個(gè)數(shù)字相加,進(jìn)行數(shù)值運(yùn)算
"+"號(hào)兩邊出現(xiàn)一個(gè)或以上個(gè)字符:此時(shí)是字符串的拼接
并且優(yōu)先進(jìn)行字符串拼接,所以在檢測(cè)到+號(hào)左右兩邊只要存在字符串的時(shí)候,會(huì)自動(dòng)將另一邊不是字符串的數(shù)據(jù),轉(zhuǎn)成字符串,再進(jìn)行字符串拼接操作(字符串拼接就是將"+"號(hào)兩邊的內(nèi)容完整的不做任何修改的前后接在一起)
注意:除了+號(hào)有兩層意義為外"-*/%"號(hào)只有數(shù)學(xué)意義,所以當(dāng)進(jìn)行"-*/%"的時(shí)候,默認(rèn)將運(yùn)算符兩邊的數(shù)據(jù)類型隱式轉(zhuǎn)換成數(shù)字類型再進(jìn)行運(yùn)算
那么如果想要進(jìn)行相加運(yùn)算,又不想被"+"號(hào)隱式轉(zhuǎn)換為字符怎么辦。
方法:
var a = "1",b = 2; console.log(a + b);//12---默認(rèn)進(jìn)行字符串拼接輸出字符串"12" console.log((a-0) + b );//3---先通-0操作將字符轉(zhuǎn)換為數(shù)字,再進(jìn)行相加,輸出數(shù)值3
if()中只需要布爾值,那么在if判斷中,會(huì)把括號(hào)內(nèi)所有的數(shù)據(jù)類型,都隱式轉(zhuǎn)換成布爾型,任何類型最終都被轉(zhuǎn)成布爾類型
數(shù)字:非0為true,0為false
字符:非空為true,空為false
對(duì)象:在任何時(shí)候都為true
數(shù)組:在任何時(shí)候都為true,數(shù)組也是對(duì)象的一種
函數(shù):在任何時(shí)候都為true,函數(shù)也是特殊的對(duì)象
NaN:為false
undefined:為false
null:為false
isNaN():
判斷是否為NaN可以間接判斷是否為數(shù)字,返回為true時(shí)為NaN不是數(shù)字,返回為false時(shí)是數(shù)字
至少有兩個(gè)或以上,根據(jù)條件執(zhí)行其中一條或多條語(yǔ)句
if(true){ console.log("hello"); }else{ if(true){ console.log("hello"); }else{ console.log("world"); } } 或者 if(true){ console.log("hello1"); }else if(true){ console.log("hello2"); }else if(true){ console.log("hello3"); }else if(true){ console.log("hello4"); }
系統(tǒng)提供的語(yǔ)句
switch(){}
switch語(yǔ)句名
()要判斷的值
{}執(zhí)行語(yǔ)句,所有的分支路徑都放在一個(gè)花括號(hào)內(nèi)
case匹配()內(nèi)的值則執(zhí)行,不匹配則往下找,找到執(zhí)行,都沒(méi)找到輸出default的內(nèi)容
案例:輸入數(shù)字,判斷后輸出星期幾
switch(n){ case 1:console.log("星期一");break; case 2:console.log("星期二");break; case 3:console.log("星期三");break; case 4:console.log("星期四");break; case 5:console.log("星期五");break; case 6:console.log("星期六");break; case 7:console.log("星期七");break; default:console.log("請(qǐng)輸入1-7之間的數(shù)字"); }
case的穿透特性:
在一個(gè)switch中,只會(huì)進(jìn)行一次case判斷,如果判斷成功,后面的case則不會(huì)判斷全部執(zhí)行
阻止case穿透
使用關(guān)鍵字break;可以跳出當(dāng)前循環(huán),后面的都不執(zhí)行
switch和if-else的區(qū)別
switch只能判斷具體的值,不能判斷范圍,不會(huì)進(jìn)行隱式轉(zhuǎn)換
if else可以判斷范圍
while(){} while //語(yǔ)句名 () //執(zhí)行條件、判斷調(diào)價(jià) {} //執(zhí)行語(yǔ)句循環(huán)體 //例: var i = 0; while(i<10){//當(dāng)括號(hào)內(nèi)的條件為真時(shí),會(huì)一直執(zhí)行 console.log(i);//輸出0-9,十個(gè)數(shù)字 i++;//改變計(jì)數(shù)器 } //表示重復(fù)執(zhí)行10次 //注意:為避免死循環(huán),一定要在循環(huán)體內(nèi) 改變 條件中使用變量的值-改變計(jì)數(shù)器。 //通常while被用在不確定執(zhí)行次數(shù)的循環(huán)中,循環(huán)體內(nèi)設(shè)置if判斷,滿足條件使用break結(jié)束循環(huán),否則一直循環(huán)
do{}while(){} do 語(yǔ)句名 {} do的執(zhí)行語(yǔ)句 while 語(yǔ)句名2 () 執(zhí)行條件 {} while的執(zhí)行語(yǔ)句 do{ console.log("do的執(zhí)行語(yǔ)句"); i++;//改變計(jì)數(shù)器 }while(i<10){ console.log("while的執(zhí)行語(yǔ)句"); } //條件為true時(shí),會(huì)執(zhí)行do后面的語(yǔ)句 //條件為false時(shí),會(huì)執(zhí)行一次while后面的語(yǔ)句 //注意:do-while的改變計(jì)數(shù)器要鞋子啊do語(yǔ)句中,否則會(huì)造成死循環(huán) do-while和while的區(qū)別 do-while任何情況下都比while多執(zhí)行一次(do-while無(wú)論真假都會(huì)執(zhí)行一次while里的語(yǔ)句) do-while相對(duì)于while結(jié)構(gòu)緊密些
for(){} for 語(yǔ)句名 () 條件組 {} 循環(huán)體 for(var i = 0; i < 10; i++){ console.log(i);//打印0-9。共十個(gè)數(shù)字 } for循環(huán)括號(hào)內(nèi)的內(nèi)容 var i=0; //定義循環(huán)開(kāi)始時(shí)計(jì)數(shù)器的初始值 i<10; //設(shè)置停止循環(huán)的條件,滿足條件執(zhí)行循環(huán),不滿足條件結(jié)束循環(huán) i++ //計(jì)數(shù)器加一(這條語(yǔ)句是在循環(huán)體內(nèi)容結(jié)束后才執(zhí)行) //注意:上面的三個(gè)內(nèi)容必須用分號(hào)“;”隔開(kāi),否則報(bào)錯(cuò) for循環(huán)是最長(zhǎng)使用的循環(huán),還可進(jìn)行for循環(huán)嵌套 for(var i=0;i<10;i++){ for(var j=0;j<10;j++){ console.log(i+j); } }
無(wú)法靠自身控制結(jié)束的循環(huán),稱為死循環(huán) 不知道要循環(huán)幾次的問(wèn)題,利用死循環(huán)的原理,每次判斷一個(gè)條件,直到滿足條件,利用break跳出循環(huán) 通常使用while來(lái)進(jìn)行死循環(huán)
continue和break都是用來(lái)控制循環(huán)結(jié)構(gòu)的,主要是用來(lái)停止循環(huán)。 控制關(guān)鍵字:控制循環(huán)的執(zhí)行或停止 break:結(jié)束循環(huán)語(yǔ)句,直接跳出當(dāng)前循環(huán)語(yǔ)句,后面所有的下一次循環(huán)都不執(zhí)行。 continue:表示跳過(guò)當(dāng)前所在的本次循環(huán)(continue下面的語(yǔ)句不執(zhí)行跳過(guò)),下一次循環(huán)還會(huì)正常執(zhí)行
感謝各位的閱讀,以上就是“javascript的語(yǔ)句結(jié)構(gòu)有哪些”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)javascript的語(yǔ)句結(jié)構(gòu)有哪些這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。