JavaScript 中比较、逻辑运算符
JavaScript 中比较、逻辑运算符
一、比较运算
1.比较运算:返回true 或者 false
2.一个等于号是赋值,两个或者三个才是比较
var x = 18;
var value = x == "18"; //一个疑问句 x是不是等于18?
console.log(value); // 返回一个布尔值
var value = x >= 18; //一个疑问句 x是不是大于或等于18?
console.log(value); //布尔值
如图所示:
3.三个等于号要绝对相等,值和类型必须都相等
// 三个等于号要绝对相等,值和类型必须都相等
var x = 18;
var value = x === "18"; //一个疑问句 x是不是等于18?
console.log(value); // 返回一个布尔值
如图所示:
4.对于!不相等才返回正确
// 不相等才返回正确
var x = 18;
var value = x != 20; //一个疑问句 x是不是不等于20?
console.log(value); //布尔值
如图所示:
//值和类型有一个不相等,都会返回true
var value = x !== "18"; //一个疑问句 x是不是不等于18?
console.log(value); //布尔值
如图所示:
5.小总结
1.非0都是正确,代表有值
2.容易犯的错误:比较写成一个=,变成赋值语句,永远成立
3.特殊 NaN == NaN 返回false,自己不等于自己
4. isNaN() 这个内置函数,判断变量 是否是非数字值。
参数值为 NaN 或字符串、对象、undefined等非数字值则返回 true, 否则返回 false。
isNaN(100) -> false
isNaN(NaN) -> true
isNaN("ABC") -> true
isNaN(undefinde) -> true
6.有哪些值在判断的时候是不成立的(false)?
1.空的字符串,连空格都没有
2.number 中的 0
3.number 中的 NaN
4.undefined
5.null
6.false
// () 最终拿到的是一个正确或者错误,无论表达式有多么长
if (null) {
// 成立
console.log("返回的是正确,执行成立");
} else {
// 不成立
console.log("返回的是错误,执行不成立语句");
}
如图所示:
二、逻辑运算符
1. && : 并且,全都满足才会返回正确,否则返回错误
x = 10;
value = x > 5 && x < 20 && x == 10;
console.log(value);
如图所示:
2. || : 或者,满足任意一个条件都会返回正确
x = 10;
value = x > 5 || x < 2 || x == 1;
console.log(value);
如图所示:
3. ! : 取非
value = !undefined;
console.log(value);
value = !(x == 10);
console.log(value);
如图所示:
4. && 的短路问题, 当第一个表达式是错误,那么第一个表达式的值就作为整个判断的结果返回,后面就会被短路,不执行了!!如果第一个表达式是正确的,则返回后面的表达式的值
value = undefined && ++b;
// value = undefined? b = 0?
console.log(value,b);
如图所示:
var a = 10, b = 0;
value = a && b;
// 假如a是对的,返回值是b
console.log(value);
如图所示:
b = 0;
value = 100 && ++b;
// value = 1? b = 1?
console.log(value,b);
如图所示:
b = 0;
value = 100 && b++;
// value = 0? b = 1?
console.log(value,b);
如图所示:
5. || 的短路问题, 当第一个表达式是正确的,那么返回第一个表达式的值,后面被短路,就不执行了,如果第一个表达式是错误的,那么返回第二个表达式的值
// 第一个正确,返回第一个表达式的值,后面被短路,就不执行了
b = 0;
value = 100 || ++b || b++;
console.log(value,b); // 100 0
如图所示:
b = 0;
value = 100 || (++b && b++);
console.log(value,b); // 100 0
如图所示:
6. 优先级: !(非) > &&(与) > ||(或), 加上括号后,优先级最大
b = 20;
value = (100 || ++b) && b++;
// 100 && b++
console.log(value,b); // 20 21
如图所示:
b = 10;
value = 100 || (++b && b++);
// 100 || (整体)
console.log(value,b); // 100 10
如图所示:
7.判断闰年
// 1.能被4整除但不能被100整除
// 2.能被400整除的为世纪闰年
var year = 2001;
var value = (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0);
if (value) {
console.log(year + "是闰年");
} else {
console.log(year + "不是闰年");
}
如图所示:
- JavaScript 比较 和 逻辑运算符
- 【JavaScript 】比较 和 逻辑运算符
- JavaScript 比较和逻辑运算符(八)
- javascript 比较逻辑运算符
- 11、JavaScript 比较和逻辑运算符
- JavaScript 事件、字符串、运算符、比较 和 逻辑运算符
- JavaScript 比较和逻辑运算符
- JavaScript快速上手之6:比较和逻辑运算符
- JavaScript基础学习笔记(三)——JavaScript 比较和逻辑运算符、JavaScript If...Else 语句、JavaScript Switch 语句
- JavaScript 比较和逻辑运算符
- JavaScript 比较和逻辑运算符
- JavaScript—比较和逻辑运算符
- 『JavaScript』比较和逻辑运算符
- JavaScript 比较和逻辑运算符(==和===的区别)
- JavaScript 比较和逻辑运算符
- JavaScript 比较和逻辑运算符
- Web开发技术——JavaScript语法3(函数、运算符、比较和逻辑运算符)
- JavaScript 比较和逻辑运算符
- JavaScript 比较和逻辑运算符
- JavaScript 比较和逻辑运算符