检查Javascript(或框架)中是否存在字段的正确方法?
我想这通常适用于所有的JS,但如果字段不可用,重写这个计算方法以确保它不会失败的正确方法是什么检查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
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代码>,防止在属性不存在时出现空异常。