引入:
你是吃饭了没有?答案只有你吃了或者没有吃。这就是我们之前学的布尔值。布尔值只有真(true)和假。(false)。
新授:
1. 逻辑运算符作用与特点
逻辑运算符通常用于布尔值的操作,一般和关系运算符配合使用,特点是短路。
2. 三个逻辑运算符
逻辑与(AND)、逻辑或(OR)、逻辑非(NOT)。
3. 逻辑与(AND):&&
var box= (5>4)&&(4>3)//true,两边都为true,返回true。原因在于&&是“与”,类似于汉字中的“且”,是必须两个条件都满足才行。
例如:所有年满18岁的男生去操场。年满18岁、男生就是两个条件都必须满足,
小结:
** &&必须两边都是true才能得到true;有一个false则得到false **
课堂练习:
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. 操作数中存在null和undefined的情况。如果未被短路,则返回null或undefined。 **
练习:走读上面代码,并用代码进行验算。
document.write ( null && 3<=2) ;
document.write( false && null) ;
var a ;
document.write( true && a) ;
document.write( false && a) ;
** 2. 操作数是对象,如果未被短路,则返回第二个操作数(无论该对象是否为空);**
练习:走读上面代码,并用代码进行验算。
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. 操作数是未申明的变量,如果未被短路,会报错(无论该对象是否为空); **
练习:走读上面代码,并用代码进行验算。
document.write ( false && aa ) ;
document.write ( true && bb ) ;
总结:
- 逻辑运算符有:与(AND)或(OR)非(NOT);逻辑“与”的写法: &&
- 逻辑"与"运算符&& : 特殊操作数(null undefined和未定义的变量)的逻辑“与”运算结果
习题
- 求出下列运算的结果
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()
- 走读下列代码,看看下列代码会出现什么问题,并上机验证。
var a;
document.write( false && b ) ;
document.write( a && false ) ;
document.write( a && new Object() ) ;
document.write( new Object() && a ) ;
document.write( b && false ) ;