2.1 布尔值
我们上节课说了,学习了两种变量的类型数值型、字符串型。
实际上,还有很多变量的类型。我们今天再学习一种,叫做“布尔类型”。
数值型里面的值,有无穷多个,因为世界上所有的数字,都是数值型;
字符串型的值,有无穷多个,因为世界上所有的文字、语句都是字符串型;
布尔类型的值,就两个,true、false。
true 真
false 假
1 var a = true; 2 var b = false; 3 console.log(a); //输出 4 console.log(b); //输出 5 console.log(typeof a); //输出类型 6 console.log(typeof b); //输出类型 |
布尔值,直接使用就可以了,千万不要加上引号。
1 var c = "true"; |
一定要注意拼写,这俩词儿都容易写错:
true 不是ture
false 不是flase
2.2 关系运算符
上次课,我们学习了一些运算符,都是“数学运算符”。有:
+ - * / %
实际上,JS中运算符还有很多,今天我们介绍一种运算符“关系运算符”。
> 大于号
< 小于号
>= 大于或等于
<= 小于或等于
== 等于
=== 全等于
!= 不等于
!== 不全等于
关系运算符,和我们小学学习的意思,一样:
1 console.log(5 > 6); 2 console.log(55 > 6); 3 console.log(55 > 66); |
关系运算符,得到的结果都是布尔值,也就是说得到的东西要么是true,要么是false
1 console.log(-6 < 9); 2 console.log(-7 < -5); 3 console.log(5 < 9); 4 console.log(100 < 5); |
小时候学习过≥,实际上在JS中需要用>=来表示,注意中间不能有空格!比如> =
1 console.log(16 >= 5); //true 2 console.log(16 >= 16); //true 3 console.log(16 >= 32); //false |
判断用户是否及格:
1 <script type="text/javascript"> 2 //得到用户的成绩 3 var chengji = parseInt(prompt("请输入成绩")); 4 //输出结果: 5 alert(chengji >= 60); 6 </script> |
小于等于:
1 console.log(5 <= 5); //true 2 console.log(6 <= 10); //true 3 console.log(6 <= 3); //false |
等于
1 console.log(5 == 5); //true 2 console.log(5 == 6); //false |
注意,在JS中=符号只有一个意思!表示赋值!!
如果想判断两个东西,是否相等,需要使用符号==
不能用一个等号,来表示等于的关系:
1 console.log(3 = 8); |
== 这个符号,还可以验证字符串是否相同:
1 console.log("我爱北京天安门" == "我爱北京天安门"); |
==等等不严谨,会将不同类型的东西,转为相同类型进行比较:
1 console.log("5" == 5); //true 2 console.log(56 == "56"); //true |
全等于,就是三个等号===
1 //全等于 2 console.log("56" === 56); //false 3 console.log(56 === "56"); //false 4 console.log("56" === "56"); //true 5 console.log(56 === 56); //true |
也就是说,==两个等号,不严谨,”5”和5是true; ===三个等号更为严谨,”5”和5是false。
!= 就是==的反面; !==就是===的反面
1 console.log(3 != 8); //true 2 console.log(3 != "3"); //false,因为3==”3”是true,所以反过来就是false。 3 console.log(3 !== "3"); //true,应为3===”3”是false,所以反过来是true。 |
2.3 逻辑运算符
逻辑运算符有三个:
&& 与(且)
|| 或
! 非
参与逻辑运算的,都是布尔值。也就是说,只有true、false才能参与逻辑运算,得到的答案,仍然是布尔值。
1 // &&表示“且”的意思,都真才真 2 console.log(true && true); //true 3 console.log(true && false); //false 4 console.log(false && true); //false 5 console.log(false && false); //false |
比如:
“陈伟是男的”是true
“1+1等于3”是false。
所以:
“陈伟是男的”且“1+1等于3” 综合结果就是false。
比如:
“地球是方的”是false
“1+1等于3”是false
所以:
“地球是方的”且“1+1等于3” 综合结果就是false
或者的意思:
1 console.log(true || true); //true 2 console.log(true || false); //true 3 console.log(false || true); //true 4 console.log(false || false); //false |
比如:
“陈伟是女的” 是false;
“1+1=2” 是true
所以:
“陈伟是女的”或者“1+1=2” 综合结果就是true
比如:
“地球是方的”是false
“1+1=3”是false
所以:
“地球是方的”或者“1+1=3” 综合结果就是false
!表示“非”,没啥好说的,
1 console.log(!true); 2 console.log(!false); |
2.4 连比的写法
比如,我们想看看2这个数字,是不是在3和15之间:
1 console.log(3 < 2 < 15); |
错误的写法。
这是因为,计算机会先计算3<2,得到的答案就是false。然后false<15,false会被隐式转换为0,所以0<15是tue。
应该拆开,中间用一个&&连接。 也就是说:
“3小于2” 且 “2小于15”。
1 console.log(3 < 2 && 2 < 4); |
判断一个人是否能够考驾照,交通法规定18~70岁能够考驾照。
1 //得到用户年龄 2 var age = parseInt(prompt("请输入年龄")); 3 //显示结果 4 alert(age >= 18 && age <= 70); |