为了账号安全,请及时绑定邮箱和手机立即绑定

js 如何一句话同时判断 undefined null 空 ?

js 如何一句话同时判断 undefined null 空 ?

慕桂英546537 2019-03-13 17:14:00
现在我判断 变量是否有效是通过如下的方式(也就是 undefined null '' 各判断一次 ):if( (this.$route.query.openid != undefined || this.$route.query.openid != null || this.$route.query.openid != '' ) && window.localStorage.getItem('openid') != ''){      ...... }想问下 JS 或者 Vue 或者 ES 中有没有什么方法能一次性直接判断变量是否有效?
查看完整描述

7 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

就用if就可以了 if (this.$route.query.openid) 就一定不为空了。


查看完整回答
反对 回复 2019-04-08
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

单就你的问题来说 if ([null, undefined, ''].indexOf(this.$route.query.openid) > -1)

或者也可以使用[].includes


查看完整回答
反对 回复 2019-04-08
?
炎炎设计

TA贡献1808条经验 获得超4个赞

  1. 如题仅判断undefined null ''的话,题主的代码有误,最后一个!=应改为!==。其次null==undefined
    (且不==其他任何值)前两个仅需保存一个。

  2. 如果只是3种,则不能通过!!flagif(flag)判断,会发生隐式类型转换,比如0falseNaN


查看完整回答
反对 回复 2019-04-08
?
梦里花落0921

TA贡献1772条经验 获得超5个赞

!!this.$route.query.openid


查看完整回答
反对 回复 2019-04-08
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

var o = {

    a: undefined,

    b: null,

    c: ''

}


function isEmpty (t) {

    return !t;

}


isEmpty(o.a);    // true

isEmpty(o.b);    // true

isEmpty(o.c);    // true

ps 不要自己写判断 能lodash就lodash

查看完整回答
反对 回复 2019-04-08
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

const nullReg = /^(undefined|null|)$/;

if(!nullReg.test(this.$route.query.openid) && !nullReg.test(window.localStorage.getItem('openid'))) {

  ...

}


查看完整回答
反对 回复 2019-04-08
  • 7 回答
  • 0 关注
  • 2595 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信