检查Javascript(或框架)中是否存在字段的正确方法?

检查Javascript(或框架)中是否存在字段的正确方法?,javascript,vue.js,Javascript,Vue.js,我想这通常适用于所有的JS,但如果字段不可用,重写这个计算方法以确保它不会失败的正确方法是什么 computed() { isVerified() { return this.name.info.is_valid; } } 我可以做,但会很冗长: computed() { isVerified() { if (this.name && this.name.info && this.name.info.is_val

我想这通常适用于所有的JS,但如果字段不可用,重写这个计算方法以确保它不会失败的正确方法是什么

computed() {
   isVerified() {
        return this.name.info.is_valid;
   }
}
我可以做,但会很冗长:

computed() {
   isVerified() {
        if (this.name && this.name.info && this.name.info.is_valid) {
           return true;
        } else {
           return false;
        }
   }
}

javascript在前两个变量中很好而且是布尔型的,但是您是否在is_valid函数中引用了django

    if (this.name && this.name.info && this.name.info.is_valid) {
       return true;
    } else {
       return false;
    }
在你的情况下,结合使用似乎是合适的

computed() {
  isVerified() {
    return this.name?.info?.is_valid ?? false;
  }
}
如果
this.name
this.name.info
this.name.info.中的任何一个有效
null
未定义
已验证
返回
false
(布尔值)。否则,它将返回
this.name.info.is\u valid
,不管它是什么(包括
null
未定义的
以外的任何虚假值,即:
0
'
NaN


请记住,以下浏览器列表暂时不支持这两个运营商:

  • Internet Explorer
  • Android版Firefox
  • Android的歌剧
  • 三星互联网

请在caniuse.com上查看其当前实施状态:

  • ,

关于最新Vue 2(
v2.6.11
)用法的说明:两个操作符仅在组件(方法、计算、挂钩等)内部工作,但如果直接在模板中使用,则会出错。
还没有在VUE3中测试过,但我希望它们能正常工作(到目前为止,它们是有效的TypeScript操作符)

对于纯粹主义者来说,以下是

function isValid(name) {
  return name?.info?.is_valid ?? false;
}
…在巴别塔:

“严格使用”;
函数isValid(名称){
变量_name$info$有效,_name$info;
返回(_name$info$is_valid=name==null | | name==void 0
?无效0
:(_name$info=name.info)==null | | _name$info==void 0
?无效0
:\u name$info.u是否有效
)!==null&&&u name$info$有效!==void 0
?_name$info$有效吗
:假;
}

这有一个新语法(
a?.b
),但您只需返回表达式本身即可缩短语法:
返回this.name&&this.name.info&&this.name.info.is\u有效谢谢@ChrisG…你能解释更多关于新语法的内容吗,或者告诉我一个我可以阅读的方向吗?基本上是
返回这个.name?.info,防止在属性不存在时出现空异常。