位置:首頁 > 軟件操作教程 > 編程開發(fā) > JavaScript > 問題詳情

JavaScript 邏輯或運(yùn)算

提問人:劉團(tuán)圓發(fā)布時(shí)間:2020-11-24

■知識(shí)點(diǎn)

    邏輯或運(yùn)算(||):如果兩個(gè)操作數(shù)都為true,或者其中一個(gè)為true,就返回true,否則返回false。邏輯或也是一種短路邏輯:如果左側(cè)表達(dá)式為true,則直接短路返回結(jié)果,不再運(yùn)算右側(cè)表達(dá)式。運(yùn)算邏輯如下。

    第1步,計(jì)算第1個(gè)操作數(shù)(左側(cè)表達(dá)式)的值。

    第2步,檢測(cè)第1個(gè)操作數(shù)的值。如果左側(cè)表達(dá)式的值可以轉(zhuǎn)換為tme,那么就會(huì)結(jié)束運(yùn)算,直接返回第1個(gè)操作數(shù)的值。停止后面的操作步驟。

    第3步,如果第1個(gè)操作數(shù)可以轉(zhuǎn)換為false,則計(jì)算第2個(gè)操作數(shù)(右側(cè)表達(dá)式)的值。

    第4步,返回第2個(gè)操作數(shù)的值。

■實(shí)例設(shè)計(jì) 針對(duì)下面4個(gè)表達(dá)式:

var n = 3;

(n == 1) &&console.log (1);

(n == 2) &&console.log (2);

(n == 3) &&console.log (3);

(! n) &&console.log("null");

可以使用邏輯或?qū)ζ溥M(jìn)行合并:

var n = 3;

(n == 1) &&console.log (1) | |

(n == 2) &&console.log (2) | |

(n == 3) &&console.log (3) | |

(! n) &&console.log (,fnulln);

由于&&運(yùn)算符的優(yōu)先級(jí)高于ii運(yùn)算符的優(yōu)先級(jí),所以不必使用小括號(hào)進(jìn)行分組。如果使用小括號(hào)分組后,代碼更容易閱讀。

var n = 3;

((n == 1) &&console.log(1) ) ||       //為true時(shí),結(jié)束并返回該行值

((n == 2) &&console.log(2))  ||       //為true時(shí),結(jié)束并返回該行值

((n == 3) &&console.log(3) ) ||       //為true時(shí),結(jié)束并返回該行值

((! n) &&console.log(nnulln));        //為true時(shí),結(jié)束并返回該行值

下面的代碼設(shè)計(jì)一個(gè)復(fù)雜的嵌套結(jié)構(gòu),根據(jù)變量a決定是否執(zhí)行一個(gè)循環(huán)。

var a = b = 2;          //定義并連續(xù)初始化 

if (a){                 //條件結(jié)構(gòu)

while(b ++ < 10){       //循環(huán)結(jié)構(gòu)

console.log(b ++);      //循環(huán)執(zhí)行語句

}

使用邏輯與和邏輯或運(yùn)算符進(jìn)行簡化:

var a = b = 2;              //定義并連續(xù)初始化

if(a){                      //條件結(jié)構(gòu)

    while(b ++ < 10){       //循環(huán)結(jié)構(gòu)

        console.log(b ++);  //循環(huán)執(zhí)行語句

    }

}

使用邏輯與和邏輯或運(yùn)算符進(jìn)行簡化:

var a = b = 2;              //定義并連續(xù)初始化

while(a && b ++ < 10) console.log(b++);   //邏輯與運(yùn)算符合并的多條件表達(dá)式

如果轉(zhuǎn)換為如下嵌套結(jié)構(gòu)就不能夠繼續(xù)使用上述表達(dá)式進(jìn)行簡化。因?yàn)橄旅娴拇a是先執(zhí)行循環(huán)體,后執(zhí)行條件檢測(cè)。

while(b ++ < 10){           //先執(zhí)行循環(huán)

    if(a){                  //再判斷條件

        console.log(b++);

    }

}

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部