溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

javascript的語(yǔ)句結(jié)構(gòu)有哪些

發(fā)布時(shí)間:2021-11-04 16:38:21 來(lái)源:億速云 閱讀:148 作者:iii 欄目:web開(kāi)發(fā)

這篇文章主要講解了“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í)行某些代碼。

javascript的語(yǔ)句結(jié)構(gòu)有哪些

本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。

JavaScript語(yǔ)言的三大結(jié)構(gòu)

  • 順序結(jié)構(gòu)

    自上而下,逐行執(zhí)行,先來(lái)后到,相同語(yǔ)句,后面的覆蓋前面的

  • 選擇分支結(jié)構(gòu)

    多條路徑,根據(jù)不同條件,只執(zhí)行其中的一條或選擇性的執(zhí)行多條

  • 循環(huán)結(jié)構(gòu)

    重復(fù)執(zhí)行某些代碼,代替某些重復(fù)性操作,減少代碼冗余,提升效率

選擇分支結(jié)構(gòu)

1.單分支結(jié)構(gòu)

  兩條路徑二選一,做或者不做,有或者沒(méi)有,執(zhí)行或不執(zhí)行;

(1)if 判斷語(yǔ)句
//語(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則不輸出
}

2.雙分支結(jié)構(gòu)

  有兩個(gè)選項(xiàng),兩者必定執(zhí)行一個(gè)

(1)if-else 判斷語(yǔ)句
//當(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í)行    
}
(2)if條件中的特殊情況
1)常規(guī)情況

通常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)算符得到

2)特殊情況

先來(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
3)if中的隱式類型轉(zhuǎn)換

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ù)字

3.多分支結(jié)構(gòu)

至少有兩個(gè)或以上,根據(jù)條件執(zhí)行其中一條或多條語(yǔ)句

(1)多個(gè)if(){}else{}嵌套使用
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");
}
(2)使用switch(){}語(yǔ)句

系統(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ù)字");
}
(3)switch的注意事項(xiàng)

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可以判斷范圍

循環(huán)結(jié)構(gòu)

1.while循環(huán)

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)

2.do-while循環(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)緊密些

3.for循環(huán)

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);
    } 
}

4.死循環(huán)

無(wú)法靠自身控制結(jié)束的循環(huán),稱為死循環(huán)
不知道要循環(huán)幾次的問(wèn)題,利用死循環(huán)的原理,每次判斷一個(gè)條件,直到滿足條件,利用break跳出循環(huán)
通常使用while來(lái)進(jìn)行死循環(huán)

5.continue關(guān)鍵字break關(guā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)注!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI