如何更简洁地获取可能为undefined的comments对象的next_page属性?
更简洁的实现方式当然有!
你当前的代码逻辑没问题,但ES6+提供的语法糖能让你用更简洁的方式实现需求,这里给你几种常用方案:
1. 可选链 + 空值合并(最推荐)
这是ES2020引入的新特性,专门解决这种嵌套可选属性的场景,代码一行搞定:
const next_page = comments?.next_page ?? null;
comments?.next_page:先检查comments是否为null/undefined,如果是直接返回undefined;如果存在,就访问它的next_page属性(如果next_page不存在也返回undefined)?? null:当左边的值是null/undefined时,返回右边的null,完美匹配你的需求——既不会把0、''这类假值误转成null,又能处理所有属性不存在的情况。
2. 解构赋值 + 默认值
如果习惯用解构的写法,也可以这样:
const { next_page = null } = comments || {};
这里先给comments一个默认的空对象{},避免comments为undefined时解构报错;然后给next_page设置默认值null,当next_page不存在时就会使用这个默认值。
3. 简化版条件判断(适合旧环境)
如果你的运行环境不支持ES2020+,可以把原来的代码简化成一行三元表达式:
const next_page = comments && comments.next_page ? comments.next_page : null;
这个逻辑和你原来的代码完全一致,只是合并成了一行写法。
总的来说,第一种方案是目前最简洁、可读性最高的选择,现代浏览器和Node.js 14+都已经支持了。
内容的提问来源于stack exchange,提问作者Src
相关产品推荐
相关产品推荐

