引入:
你是吃飯了沒(méi)有?答案只有你吃了或者沒(méi)有吃。這就是我們之前學(xué)的布爾值。布爾值只有真(true)和假。(false)。
新授:
1. 邏輯運(yùn)算符作用與特點(diǎn)
邏輯運(yùn)算符通常用于布爾值的操作,一般和關(guān)系運(yùn)算符配合使用,特點(diǎn)是短路。
2. 三個(gè)邏輯運(yùn)算符
邏輯與(AND)、邏輯或(OR)、邏輯非(NOT)。
3. 邏輯與(AND):&&
var box= (5>4)&&(4>3)//true,兩邊都為true,返回true。原因在于&&是“與”,類似于漢字中的“且”,是必須兩個(gè)條件都滿足才行。
例如:所有年滿18歲的男生去操場(chǎng)。年滿18歲、男生就是兩個(gè)條件都必須滿足,
小結(jié):
** &&必須兩邊都是true才能得到true;有一個(gè)false則得到false **
課堂練習(xí):
alert ( true && 3>=2 ) ;
alert ( 5<=3 && (8-4)*2+1+9<=12 ) ;
alert ( 8-3>=5 && 8+2 >=3 && 9/4<=3 && 12>=4 )
alert ( 8-3>=5 && 8+2 >=3 && 9/4<=3 && 12>=4 && false )
alert ( 3 && true )
特殊情況
** 1. 操作數(shù)中存在null和undefined的情況。如果未被短路,則返回null或undefined。 **
練習(xí):走讀上面代碼,并用代碼進(jìn)行驗(yàn)算。
document.write ( null && 3<=2) ;
document.write( false && null) ;
var a ;
document.write( true && a) ;
document.write( false && a) ;
** 2. 操作數(shù)是對(duì)象,如果未被短路,則返回第二個(gè)操作數(shù)(無(wú)論該對(duì)象是否為空);**
練習(xí):走讀上面代碼,并用代碼進(jìn)行驗(yàn)算。
var a = new Object () ;
document.write ( false && a ) ; // false
document.write ( a && false ) ; // false
document.write ( true && a) ; // [object Object]
document.write ( a && true) ; // true
** 3. 操作數(shù)是未申明的變量,如果未被短路,會(huì)報(bào)錯(cuò)(無(wú)論該對(duì)象是否為空); **
練習(xí):走讀上面代碼,并用代碼進(jìn)行驗(yàn)算。
document.write ( false && aa ) ;
document.write ( true && bb ) ;
總結(jié):
- 邏輯運(yùn)算符有:與(AND)或(OR)非(NOT);邏輯“與”的寫法: &&
- 邏輯"與"運(yùn)算符&& : 特殊操作數(shù)(null undefined和未定義的變量)的邏輯“與”運(yùn)算結(jié)果
習(xí)題
- 求出下列運(yùn)算的結(jié)果
true && true false && true false && false false && true && true && 3>=2
3 && true 5>=5 && false 5>=6 && 6==6 (8+4)>=12 & false
null && true false && null true && new Object() new Object() && new Object()
- 走讀下列代碼,看看下列代碼會(huì)出現(xiàn)什么問(wèn)題,并上機(jī)驗(yàn)證。
var a;
document.write( false && b ) ;
document.write( a && false ) ;
document.write( a && new Object() ) ;
document.write( new Object() && a ) ;
document.write( b && false ) ;