JavaScript:||=的写法作用

devtools/2025/2/12 12:56:00/

||=的写法作用

  • 介绍
  • 解释
  • 总结

介绍

||= 是一种逻辑赋值操作符(logical assignment operator),它是 JavaScript 中的一种简写方式,结合了逻辑运算符 ||(逻辑或)和赋值操作符 =。它的作用是:
• 如果左侧的变量(foundImprovement)是 falsy(即 false, 0, "", null, undefined 或 NaN),则将右侧的表达式的结果赋给左侧变量。
• 如果左侧的变量是 truthy,则保持原值,不做任何改变。

具体例子:

foundImprovement ||= isValidEvaluationType(evalOutput) && evalOutput.includes('improvement');

这行代码等价于:

if (!foundImprovement) {foundImprovement = isValidEvaluationType(evalOutput) && evalOutput.includes('improvement');
}

解释

  • 如果 foundImprovement 已经是一个 truthy 值(例如 true),那么这个表达式不会修改 foundImprovement。
  • 如果 foundImprovement 是 falsy(例如 false 或 undefined),那么就会计算右边的表达式(isValidEvaluationType(evalOutput) && evalOutput.includes(‘improvement’)),并将其结果赋值给 foundImprovement。

总结

||= 是一个简写的赋值运算符,用来仅在左边的变量为 falsy 时才赋新值。


http://www.ppmy.cn/devtools/157908.html

相关文章

【Uniapp-Vue3】UniCloud云数据库获取指定字段的数据

使用where方法可以获取指定的字段: let db uniCloud.database(); db.collection("数据表").where({字段名1:数据, 字段名2:数据}).get({getOne:true}) 如果我们不在get中添加{getOne:true},在只获取到一个数据res.result.data将会是一个数组&…

python+unity落地方案实现AI 换脸融合

先上效果再说技术结论,使用的是自行搭建的AI人脸融合库,可以离线不受限制无限次生成,有需要的可以后台私信python ai换脸融合。 TODO 未来的方向:3D人脸融合和AI数据训练 这个技术使用的是openvcinsighface,openvc…

C++性能优化—人工底稿版

C以高性能著称,性能优化是C程序员绕不过去的一个话题,性能优化是一个复杂、全局而又细节的问题,本文总结C性能分析中常用的知识。 性能优化的时机 大部分关于性能优化的文章都强调:不要过早的进行性能优化。 C编码层面 数据结…

kafka topic是什么?partition是什么? broker是什么?

在 Apache Kafka 中,理解 topic、partition 和 broker 是掌握其工作原理的基础。以下是对这些概念的详细解释: 1. Topic(主题) 定义:Topic 是 Kafka 中的基本消息类别或类别。它类似于数据库中的表,是消息…

Windows系统中常用的命令

随着Windows系统的不断改进,维护系统时有时候会因为新系统的更新而找不到对应的模块或者相关的信息入口,这个时候,记住一些命令就可以起到很好的帮助作用。 比如,windows11中的网络属性的修改,可能习惯了windows10或者…

保姆级教程Docker部署Zookeeper模式的Kafka镜像

目录 一、安装Docker及可视化工具 二、Docker部署Zookeeper 三、单节点部署 1、创建挂载目录 2、命令运行容器 3、Compose运行容器 4、查看运行状态 5、验证功能 四、部署可视化工具 1、创建挂载目录 2、Compose运行容器 3、查看运行状态 一、安装Docker及可视化工…

Java 2024年面试总结(持续更新)

目录 最近趁着金三银四面了五六家公司吧,也整理了一些问题供大家参考一下(适合经验三年左右的)。 面试问题(答案是我自己总结的,不一定正确): 总结: 最近趁着金三银四面了五六家公…

JVM的性能优化

1.方法内联 方法内联,是指 JVM在运行时将调用次数达到一定阈值的方法调用替换为方法体本身 ,从而消除调用成本,并为接下来进一步的代码性能优化提供基础,是JVM的一个重要优化手段之一。 注: C++的inline属于编译后内联,但是java是运行时内联 简单通俗的讲就是把方法内部调…