js 如何用 三元运算符 优雅的区分 (null,undefined) 和 (0,false) ?

当 data 不为 undefined 和 null(不考虑NaN) 的时候我需要给他转换成 JSON 字符串

var data = [1, 2, 3]
var res = data ? JSON.stringify(data) : null

然后当遇到 data 为 0,false 的时候出现 bug 了~

阅读 5k
2 个回答

空值合并运算可以判断 nullundefined,那么这是比较直接的处理,

(data ?? null) === null ? null : JSON.stringify(data)

不过 JSON.stringify 的参数如果是 undefined,它会返回 undefined,所以

const res = JSON.stringify(data ?? undefined) ?? null;

如果结果可以用 undefined 代替 null,那最后的 ?? null 都可以省了。

var res = data != void 0 ? JSON.stringify(data) : null
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题