文章目录
- 逻辑运算符
- 1. ! 非
- 1.1. !可以用来对一个值进行非运算
- 1.2. 所谓非运算就是指对一个布尔值进行取反操作,
- 1.3. 如果对一个值进行两次取反,它不会变化
- 1.4. 如果对非布尔值进行运算,则会将其转换为我布尔值,然后再进行取反
- 2. && 与
- 2.1. &&可以对符号两侧的值进行与运算并返回结果
- 2.2. 运算规则
- 3. || 或
- 3.1. ||可以对符号两侧的值进行或运算并返回结果
- 3.2. 运算规则
- 4. && || 非布尔值的情况
- 4.1. 对于非布尔值进行与或运算时,会先将其转换为布尔值,然后再运算,并且返回原值
- 4.2. 与运算
- 4.3. 或运算
逻辑运算符
var result = true && true;
//只要有一个false,就返回false
result = true && false;
result = false && true;
result = false && false;
console.log("result = " + result);
//第一个值为true,会检查第二个值
true && alert("你看我出不出来!!");
//第一个值为false,不会检查第二个值
//false && alert("你看我出不出来!!");
//两个都是false,则返回false
result = false || false;
//只要有一个true就返回true
result = true || false;
result = false || false;
result = true || true;
console.log("result = " + result);
//第一个值为false,则会检查第二个值
false || alert("123");
//第一个值为true,则不再检查第二个值
//true || alert("123");
var a = false;
//对a进行非运算
a = !!a;
console.log("a = " + a);
var b = 10;
b = !!b;
console.log("b = " + b);
console.log(typeof b);
1. ! 非
var a = false;
//对a进行非运算
a = !!a;
console.log("a = " + a);
console.log(typeof a);
var b = 10;
b = !!b;
console.log("b = " + b);
console.log(typeof b);
1.1. !可以用来对一个值进行非运算
1.2. 所谓非运算就是指对一个布尔值进行取反操作,
true 变 false,false 变 true
1.3. 如果对一个值进行两次取反,它不会变化
1.4. 如果对非布尔值进行运算,则会将其转换为我布尔值,然后再进行取反
- 所以我们可以利用该特点,来讲一个其他的数据类型转换为布尔值
- 可以为任意数据类型取两次反,来将其转换为布尔值
- 原理和 Boolean()函数一样
2. && 与
var result = true && true;
//只要有一个false,就返回false
result = true && false;
console.log("result = " + result);
result = false && true;
console.log("result = " + result);
result = false && false;
console.log("result = " + result);
//第一个值为true,会检查第二个值
true && alert("你看我出不出来!!");
//第一个值为false,不会检查第二个值
false && alert("你看我出不出来!!");
2.1. &&可以对符号两侧的值进行与运算并返回结果
2.2. 运算规则
- 两个值中只要有一个值为 false 就返回 false
- 只有两个值都为 true,才会返回 true
- JS 中的"与"属于短路的与
- 如果第一个值为 false,则不会看第二个值
3. || 或
//两个都是false,则返回false
var = result = false || false;
//只要有一个true就返回true
result = true || false;
console.log("result = " + result);
result = false || false;
console.log("result = " + result);
result = true || true;
console.log("result = " + result);
//第一个值为false,则会检查第二个值
false || alert("123");
//第一个值为true,则不再检查第二个值
true || alert("123");
3.1. ||可以对符号两侧的值进行或运算并返回结果
3.2. 运算规则
- 两个值中只要有一个 true,就返回 true
- 爱如果两个值都为 false,才返回 false
- JS 中的或属于短路的或
- 如果第一个值为 true 则不会检查第二个值
4. && || 非布尔值的情况
//true && true
//与运算,如果两个值都为true,则返回后边的
var result = 5 && 6;
//与运算,如果两个值中有false,则返回靠前的false
//false && true
//result = 0 && 2;
//如果有false则返回false
//result = 2 && 0;
//false && false
//result = NaN && 0;
//result = 0 && NaN;
console.log(result);
//true || true
//如果第一个值为true,则直接返回第一个值
result = 2 || 1;
//result = 2 || NaN;
//result = 2 || 0;
//如果第一个值为false,则直接返回第二个值
//result = NaN || 1;
//result = NaN || 0;
//result = "" || "hello";
//result = -1 || "你好";
console.log("result = " + result);
4.1. 对于非布尔值进行与或运算时,会先将其转换为布尔值,然后再运算,并且返回原值
4.2. 与运算
//true && true
//与运算,如果两个值都为true,则返回后边的
var result = 5 && 6;
//与运算,如果两个值中有false,则返回靠前的false
//false && true
result = 0 && 2;
console.log(result);
//如果有false则返回false
result = 2 && 0;
console.log(result);
//false && false
result = NaN && 0;
console.log(result);
result = 0 && NaN;
console.log(result);
- 如果第一个值为 true,则必然返回第二个值
- 如果第一个值为 false,则直接返回第一个值
4.3. 或运算
- 如果第一个值为 true,这返回第一个值
- 如果第一个值为 false,则返回第二个值
//true || true
//如果第一个值为true,则直接返回第一个值
result = 2 || 1;
console.log("result = " + result);
result = 2 || NaN;
console.log("result = " + result);
result = 2 || 0;
console.log("result = " + result);
//如果第一个值为false,则直接返回第二个值
result = NaN || 1;
console.log("result = " + result);
result = NaN || 0;
console.log("result = " + result);
result = "" || "hello";
console.log("result = " + result);
result = -1 || "你好";
console.log("result = " + result);