JavaScript学习——逻辑运算符

本文详细介绍了JavaScript中的逻辑运算符,包括非运算符(!)、与运算符(&&)和或运算符(||)。对于非布尔值,这些运算符会先将其转换为布尔值再进行运算。此外,还解释了短路逻辑在与运算和或运算中的应用,以及非布尔值运算的结果。通过实例展示了各种情况下的运算结果,帮助理解这些运算符的工作原理。
摘要由CSDN通过智能技术生成

逻辑运算符

共有三个逻辑运算符:

  • !: 非运算
  • &&:与运算
  • ||:或运算

1.非运算

  • ! :非运算符,用来对一个布尔值进行取反
  • 对一个布尔值取反两次,值不变
  • 如果是非布尔值,则将其转换为布尔值再进行非运算。
//对布尔值bool进行非运算
//结果:
//true boolean
//false boolean
var bool = true;
document.write(bool + " "+typeof bool+"<br>");
bool = !bool; 
document.write(bool + " "+typeof bool);

//对非布尔值进行非运算
//结果:
//hello string
//false boolean
var a = "hello"; //将String转换成Boolean,即true
document.write(a + " " + typeof a + "<br>");
a = !a;
document.write(a + " " + typeof a);

我们可以利用非运算的特点,将其他类型的值转换为布尔值:给任意值取反两次,即可将其转换为布尔值。

//对bool进行两次非运算
//结果:将Number转换为了Boolean
//2 number
//true boolean
var b = 2;
document.write(b + " " + typeof b + "<br>")
b = !!b;
document.write(b + " " + typeof b);

2.与运算

(1)布尔值的与运算
  • &&:与运算符,可以对两个布尔值进行与运算
  • 运算规则:
    只有两个true时,结果才为true
    只要出现false,结果即为false
// true与true
//结果:result = true
result = true && true;
document.write("result = " + result); 

//true与false
//结果:result = false
result = true && false;
document.write("result = " + result); 

result = false && true;
document.write("result = " + result);

//false与false
//结果:result = false
result = false && false;
document.write("result = " + result); 
  • JS中的“与”为短路“与”,即如果第一个值为false,则不会看第二个值
(2)非布尔值的与运算
  • 非布尔值进行与运算时,先转换为布尔值,在进行运算,并返回原值
  • 规则:
    如果第一个值是true,则返回第二个值
    如果第一个值是false,则返回第一个值
// true与true
//结果:result = 5
result = 1 && 5; // 1-->true,5-->true
document.write("result = " + result);

// true与flase
//结果:result = 0
result = 1 && 0; // 1-->true,0-->false
document.write("result = " + result);

// flase与true
//结果:result = NaN
result = NaN && 5; //NaN-->flase,5-->true
document.write("result = " + result);

// flase与flase
//结果:result = undefined
result = undefined && ""; //undefined-->false,''-->false
document.write("result = " + result);

3.或运算

(1)布尔值的或运算
  • ||:或运算符,可以对两个布尔值进行或运算
  • 运算规则:
    只有两个false时,结果为false
    只要出现true,结果就为true
  • JS中的“或”为短路“或”,如果第一个值为true,则不会检查第二个值
// true与true
//结果:result = true
result = true && true;
document.write("result = " + result);

// true与false
//结果:result = true
result = true &&false;
document.write("result = " + result);

// false与true
//结果:result = true
result = false || true;
document.write("result = " + result);

// false与flase
//结果:result = false
result = false || false;
document.write("result = " + result);
(2)非布尔值的或运算
  • 非布尔值进行或运算时,先转换为布尔值,在进行运算,并返回原值
  • 规则:
    如果第一个值是true,则返回第一个值
    如果第一个值是false,则返回第二个值
// true与true
//结果:result = hello
result = "hello" || 1; //"hello"-->true,1-->true
document.write("result = " + result);

// true与flase
//结果:result = 5
result = 5 || ""; //5-->true,""->false
document.write("result = " + result);

// flase与true
//结果:result = hello
result = "" || "hello"; //""-->false,"hello"-->true
document.write("result = " + result);

// flase与flase
//结果:result = undefined
result = null || undefined; // null-->false,undefined->false
document.write("result = " + result);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值