现在我判断 变量是否有效是通过如下的方式(也就是 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贡献1851条经验 获得超5个赞
炎炎设计
TA贡献1808条经验 获得超4个赞
如题仅判断
undefined null ''
的话,题主的代码有误,最后一个!=
应改为!==
。其次null==undefined
(且不==
其他任何值)前两个仅需保存一个。如果只是3种,则不能通过
!!flag
或if(flag)
判断,会发生隐式类型转换,比如0
、false
、NaN
。
慕娘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
天涯尽头无女友
TA贡献1831条经验 获得超9个赞
const nullReg = /^(undefined|null|)$/;
if(!nullReg.test(this.$route.query.openid) && !nullReg.test(window.localStorage.getItem('openid'))) {
...
}
添加回答
举报
0/150
提交
取消