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

我想这一般适用于所有 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;

        }

   }

}


LEATH
浏览 122回答 1
1回答

冉冉说

将可选链接与无效合并运算符相结合似乎适合您的情况。computed() {  isVerified() {    return this.name?.info?.is_valid ?? false;  }}如果this.name、this.name.info或中的任何一个this.name.info.is_valid是null或undefined,isVerified则返回false(布尔值)。否则,它返回 的当前值this.name.info.is_valid,无论它是什么(包括除null或 之外的任何错误值undefined。即:0, '', NaN)。请记住,目前以下浏览器列表不支持这两个运算符:IE浏览器安卓版火狐浏览器安卓版歌剧三星互联网请注意最新的 Vue 2 ( v2.6.11) 用法:这两个运算符仅在组件内部工作(方法、计算、钩子等),但如果直接在模板中使用,它们会出错。尚未在 Vue 3 中进行测试,但我希望它们能够工作(从v3.7开始它们是有效的 TypeScript 运算符)。对于纯粹主义者来说,这里是输出function isValid(name) {  return name?.info?.is_valid ?? false;}...在巴别塔:"use strict";function isValid(name) {  var _name$info$is_valid, _name$info;  return (_name$info$is_valid = name === null || name === void 0          ? void 0          : (_name$info = name.info) === null || _name$info === void 0            ? void 0            : _name$info.is_valid         ) !== null && _name$info$is_valid !== void 0          ? _name$info$is_valid          : false;}

森林海

javascript 在你的前两个变量中是很好的和布尔值,但是你在你的 is_valid 函数中引用了 django 吗?    if (this.name && this.name.info && this.name.info.is_valid) {       return true;    } else {       return false;    }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript