惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Full Disclosure
博客园 - 三生石上(FineUI控件)
MyScale Blog
MyScale Blog
Apple Machine Learning Research
Apple Machine Learning Research
L
LINUX DO - 最新话题
T
The Blog of Author Tim Ferriss
P
Proofpoint News Feed
宝玉的分享
宝玉的分享
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
Visual Studio Blog
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园_首页
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
月光博客
月光博客
博客园 - 叶小钗
D
Docker
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
Tailwind CSS Blog
D
DataBreaches.Net
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog RSS Feed
量子位
美团技术团队
Vercel News
Vercel News
Y
Y Combinator Blog
IT之家
IT之家
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
SegmentFault 最新的问题
腾讯CDC
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
罗磊的独立博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
G
Google Developers Blog
Microsoft Azure Blog
Microsoft Azure Blog
The Register - Security
The Register - Security
博客园 - 司徒正美
N
Netflix TechBlog - Medium
S
Schneier on Security
博客园 - 聂微东
U
Unit 42
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
雷峰网
雷峰网
Latest news
Latest news

博客园 - howhy

html 元素包含关系 this 指向 空对象 Object.keys for ...in Reflect.ownKeys ...区别 运算符优先级 js 类型显式转换 js 高级函数 js 方法重载 fetch timeout js 任务顺序执行 暂停 js 并发任务 判断两个对象是否相同 js 动态拦截属性 js 通用动画 js groupby js 防抖和节流 实现 instanceof 操作符 js 单例模式 js 数组去重和扁平方法 js 继承方法 js new的过程实现 js deepCopy js '=='的隐性类型转换规则
逻辑运算符和空值运算符
howhy · 2026-04-02 · via 博客园 - howhy

1. ||(逻辑或)

  • 规则:从左到右求值,返回第一个真值;如果所有操作数都为假,则返回最后一个操作数。

  • 示例:

    console.log(0 || 'hello' || false);   // 'hello'(第一个真值)
    console.log('' || null || 0);          // 0(全是假,返回最后一个)

2. &&(逻辑与)

  • 规则:从左到右求值,返回第一个假值;如果所有操作数都为真,则返回最后一个操作数。

  • 示例:

    console.log(1 && 'hi' && null);       // null(第一个假值)
    console.log(1 && 'hi' && true);       // true(全为真,返回最后一个)

3. ??(空值合并运算符)

  • 规则:只有当第一个操作数是 null 或 undefined 时,才返回第二个操作数;否则返回第一个操作数。

  • 注意:0''false 等都不算“空值”,不会触发返回右侧。

  • 示例:

    console.log(0 ?? 100);     // 0(0 不是 null/undefined)
    console.log(null ?? 100);  // 100
    console.log(undefined ?? 100); // 100

重要区别

  • || 会把 0''false 等视为假值,而 ?? 只认 null 和 undefined

  • 实践中常用 || 提供默认值(但会覆盖 0/'' 等有效值),用 ?? 更精确地处理缺失值。