javascript 判断null或者undefined 及0的问题

benniu
  • 32

是这样。

我要从一个Array中取值 比如从 Array test=[1,3] 取第一位值。

但有时候 test 可能为空的 [] ,这时我希望返回-1来做后续处理

于是我用类似这样 v= test[0]||-1

上面的例子中我能取到1 ,如果为空,我能取回-1 这没问题,正常使用

但是问题来了,当 test 里面的首个比如为 [0,5] 这样时

我用 v=test[0]||-1 取回来的就是-1了。因为 0||-1 = -1,这与期望要取到的0就不符合了。

有没有其它简短的办法实现?谢谢

回复
阅读 205
2 个回答

ES2020 里新增了 ?? 特性(Nullish coalescing operator,空值合并运算符)就是为了解决你这个问题的。

v = test[0] ?? -1 即可,等同于 v = (test[0] != null) ? test[0] : -1

兼容低版本的话需要 babel。

test&&test.length?test[0]:-1

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏