当前位置: 首页 > news >正文

js逻辑或(||)和且()

重点: JavaScript 中的逻辑运算符按照布尔逻辑进行计算,并且返回值是操作数本身


||

||:逻辑或,只要有一个表达式为真(truthy),整个表达式就为真

逻辑或 (||) 的行为:

||运算符可以用来连接两个或多个表达式。如果第一个表达式为真,那么会直接返回第一个表达式的值, 不再执行第二个表达式。如果第一个表达式为假,那么会返回第二个表达式的值

eg 1:用于条件判断

a = 1
b = ''
if (a || b) {console.log('a || b')
}
// 打印出 a || b

如上,a转化为布尔值为true,不管b转化后是否为true,结果都是返回a的值,而a的值1转化后为true,所以可以打印出结果

a = 1
b = ''
if (a == 2 || b == 1) {console.log('a || b')
}

如上,a == 2 为 false,b == 1 为 false, false || false 的结果,返回后面的false,所以不走if,打印不出结果

eg 2:提供默认值

a = ''
b = 0
c = a || b
console.log(c) // 0

如上,a的值为空(转换后为false),则返回b的值

eg 3: 简化条件表达式

let a  = ""
a = a ? a: 0;
简化后:
let a  = ""
a = a || 0

如上,如果a转换为布尔值后为true,则a赋值等于a,如果a转换为布尔值为false,则将a赋值为0。 它既是简化三元表达式,也是为a提供默认值。


&&

&&:逻辑与,所有表达式都为真(truthy)时,整个表达式才为真

逻辑与 (&&) 的行为:

&&运算符可以用来连接两个或多个表达式。如果第一个表达式为真,那么会返回第二个表达式的值;如果第一个表达式为假那么会直接返回第一个表达式的值,不再执行第二个表达式。

eg 1:用于条件判断

a = 1
b = 2
if (a && b) {console.log('a && b')
}
// 打印出 a && b

如上,a转化为布尔值为true,b转化为布尔值后也为true,a && b 返回第二个表达式的值true if(true) 所以可以打印出结果

a = 1
b = ''
if (a == 2 && b == 1) {console.log('a && b')
}

如上,a == 2 为 false,b == 1 为 false, false && false 的结果,返回前面的false,所以不走if,打印不出结果

eg 2:提供默认值

a = ''
b = 0
c = a && b
console.log(c) // ‘’

如上,a的值为空(转换后为false),则返回a的值

eg 3: 简化条件表达式

funciton b () {
} let a= 2;
let c= a ? b() : '';
// 简化后:
let a= 2;
let c= a && b();

如上,如果a转化后为true,则执行b函数,如果a为false,则不执行,在日常开发中很常用。

http://www.lryc.cn/news/412796.html

相关文章:

  • ElasticSearch入门(六)SpringBoot2
  • vue项目Nginx部署启动
  • Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules。Android studio纯java代码报错
  • filebeat
  • matlab y=sin(x) - 2/π*(x)函数绘制
  • HyperDiffusion阅读
  • 分治思想 排序数组
  • 通用前端分页插件
  • jEasyUI 扩展编辑器
  • 腾讯课堂停服,付费课程怎么观看!!!
  • C# 桥接模式
  • GPT-4o mini一手测评:懂得不多,但答得极快
  • Python面试题:结合Python技术,如何使用Pytest进行单元测试和集成测试
  • Java面试必看!知己知彼才能百战百胜,如何做好面试前的准备?
  • [Vue warn]: data functions should return an object:
  • .net 7和core版 SignalR
  • 【人工智能】Transformers之Pipeline(三):文本转音频(text-to-audio/text-to-speech)
  • 前端入门知识分享:HTML 页面中 head 标签之间的代码详解
  • 【Spring Boot】手撕搜索引擎项目,深度复盘在开发中的重难点和总结(长达两万6千字的干货,系好安全带,要发车了......)
  • 测试面试宝典(四十二)—— 接口测试什么时候介入
  • 【Elasticsearch】Elasticsearch的分片和副本机制
  • 鸿蒙开发入门指南
  • 从分散到整合,细说比特币发展史
  • TreeSelect增加可筛选功能
  • 星环科技与宁夏银行“大数据联合实验室”揭牌,持续打造金融科技新范式
  • React native页面突然白屏
  • 一段直接路径读取文件LINUX C代码
  • Android让所有APK横屏显示
  • 【智能制造-26】PLC标准-SICAR
  • 浅学爬虫-处理复杂网页