☰
JavaScript 小技巧:?.、??、??= 三个运算符,告别满屏的 if 判断。
2026/10/29 11:13:34 网站建设 项目流程

写 JS 时最常见的啰嗦代码,就是一层层判断某个值存不存在。其实三个运算符就能把这些判断压到一行。

1. 可选链 ?.:安全地往深处取

以前:

constname=user&&user.profile&&user.profile.name;

现在:

constname=user?.profile?.name;

中间任何一环是 null 或 undefined,整个表达式直接返回 undefined,不会报错。函数也能这样调:callback?.(),回调不存在时直接跳过。

2. 空值合并 ??:只认 null 和 undefined

constcount=input||10;// input 是 0 也会被替换成 10constcount=input??10;// 只有 null / undefined 才换成 10,0 和 '' 原样保留

做默认值时,?? 比 || 更精确,不会误杀 0 和空字符串。

3. 逻辑空赋值 ??=:默认值一行写完

if(config.timeout==null)config.timeout=3000;// 等价于config.timeout??=3000;

组合起来

functiongreet(user){constname=user?.profile?.name??'访客';return`你好,${name}`;}```## 两个小坑 - ?? 不能和 &&、|| 混写不加括号:`a??b||c`会直接报语法错误,要写成`(a??b)||c`。-?.遇到 nullish 会短路,后面的整个链都不执行。 三个运算符都是ES2020/ES2021的特性,现代浏览器和较新的 Node 版本都已支持,放心用。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询