文章目录

  • 逻辑运算符
  • 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);

javascript逻辑控制 js功能实现逻辑_web

javascript逻辑控制 js功能实现逻辑_前端_02

javascript逻辑控制 js功能实现逻辑_web_03

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. 如果对非布尔值进行运算,则会将其转换为我布尔值,然后再进行取反

  1. 所以我们可以利用该特点,来讲一个其他的数据类型转换为布尔值
  2. 可以为任意数据类型取两次反,来将其转换为布尔值
  3. 原理和 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. 运算规则

  1. 两个值中只要有一个值为 false 就返回 false
  • 只有两个值都为 true,才会返回 true
  • JS 中的"与"属于短路的与
  1. 如果第一个值为 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. 运算规则

  1. 两个值中只要有一个 true,就返回 true
  • 爱如果两个值都为 false,才返回 false
  1. 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);

javascript逻辑控制 js功能实现逻辑_javascript逻辑控制_04

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);
  1. 如果第一个值为 true,则必然返回第二个值
  2. 如果第一个值为 false,则直接返回第一个值

4.3. 或运算

  1. 如果第一个值为 true,这返回第一个值
  2. 如果第一个值为 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);