⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

JS 三元运算符与??

学习 ?: 和 ?? 空值合并运算符 · 难度:入门 · +10XP

JS 三元运算符与??

JavaScript 三元运算符与空值合并

学习前的准备

打开浏览器控制台(F12)动手练习。本教程适合已经了解 if/else 语句的初学者。我们将学习两种非常实用的简洁写法:三元运算符(? :)和空值合并运算符(??)。

三元运算符 — 一行代码的 if...else

let age = 20;
let status = age >= 18 ? '成年' : '未成年';
console.log(status);  // '成年'

let score = 75; let result = score >= 60 ? '及格' : '不及格'; console.log(result); // '及格'

let isLogged = true; let btnText = isLogged ? '退出' : '登录';

空值合并运算符 ??(ES2020)

?? 和 || 很像,但有一个关键区别:|| 会把 0、''、false、NaN 都当作假值,而 ?? 只关心 null 和 undefined。

let count = 0;
let display = count || 10;
console.log(display);  // 10(0 被错误替换了!)

let display2 = count ?? 10; console.log(display2); // 0(正确!0 被保留)

console.log(0 ?? 5); // 0 console.log('' ?? '默认'); // ''(空字符串是合法值)

可选链 ?. (ES2020)

?. 允许你安全地访问深层嵌套的属性,如果中间某个值为 null 或 undefined,返回 undefined 而不是报错。

const user = { name: '王五', address: { city: '上海' } };
let zip = user?.address?.zip;
console.log(zip);  // undefined(而不是报错)
let city = user?.address?.city ?? '未知城市';
console.log(city);  // '上海'
let phone = user?.contact?.phone ?? '无联系方式';
console.log(phone); // '无联系方式'

小结

三元运算符 ? : 是 if/else 的简写。?? 只检查 null/undefined,不会把 0、''、false 误判为缺少值。?. 可选链让你安全访问嵌套属性。这三个简写语法组合使用,能让你的代码既简洁又健壮。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 231 篇
0 完成
🔥 0