美文网首页
如何安全访问嵌套对象

如何安全访问嵌套对象

作者: 是努力的鸣谦啊 | 来源:发表于2020-08-28 16:08 被阅读0次

请直接跳到文末

当我们在项目中需要读取位于连接对象链深处的属性的值的时候,需要做一些边界处理,否则有可能会报错。

举个例子:
正常的数据结构

const user = {
  id: 1,
  email: 'carlo@bingshan.com',
  info: {
    name: 'carlo',
    address: {
      country: 'china',
      provinces: 'liaoning',
      city: 'dalian', street: 'aaaaaaaa'
    }
  }
}

缺失一部分

const user = {
  id: 1,
  email: 'carlo@bingshan.com',
  info: {
    name: 'carlo'
  }
}
console.log(user.info.address.city); // TypeError: Cannot read property 'city' of undefined

安全写法:

if (user && user.info && user.info.address && user.info.address.city) {
  let cityStr = user.info.address.city;
} else { }

// 或者
let cityStr = user && user.info && user.info.address ? user.info.address.city : '';
let cityStr = (((user || {}).info || {}).address || {}).city;

================== 哗啦哗啦的分割线 ==================

这篇东西我自己都不记得是啥时候写的了,今天翻翻草稿,看到了,舍不得删,不过上面那一大串都不是重点,现在已经出了新语法了

let cityStr = user?.info?.address?.city;
// ?.  这个语法的学名叫做可选链

相关文章

  • 如何安全访问嵌套对象

    请直接跳到文末 当我们在项目中需要读取位于连接对象链深处的属性的值的时候,需要做一些边界处理,否则有可能会报错。 ...

  • javascript的N大优雅写法

    日常代码的堆砌罗列很不优雅,下面看看如何优雅 1、可选链“?." 这是一种访问嵌套对象属性的安全方式,即使中间属性...

  • js嵌套对象访问

    Oliver Steele的嵌套对象访问模式 const name = ((user || {}).persona...

  • 常见的类

    嵌套类 内部类 枚举类 密封类 数据类 单例模式 伴生对象 嵌套类 嵌套类是嵌套在其它类中的类 不能访问外部类的成...

  • 静态内部类和非静态内部类的区别

    嵌套类的对象,并不需要其外围类的对象。 即它可以不依赖于外部类实例被实例化。 不能从嵌套类的对象中访问非静态的外围...

  • python入门——列表

    一:列表 可包含任意类型的对象的有序集合 通过下标访问元素 可变长度、可任意嵌套 支持原位改变 对象对象引用数组 ...

  • Python列表操作

    列表容器类型,包含任意对象的有序集合,通过索引访问其中的元素,可变对象,任意嵌套。定义:list = [1,2,2...

  • Java 多线程同步

    线程安全相关问题 如何定义一个对象是否是线程安全的 当多个线程访问同一个对象时,如果不用考虑这些线程在运行时环境下...

  • Optional Chaining(类似lodash.get访问

    介绍 js中,访问被深层嵌套的某个对象的属性时,很容易触发Cannot read property 'foobar...

  • Gson教程二(译):嵌套对象的序列化和反序列化

    该文章翻译自Gson Tutorial Series系列教程。该篇主要阐述了如何使用Gson映射嵌套类。 嵌套对象...

网友评论

      本文标题:如何安全访问嵌套对象

      本文链接:https://www.haomeiwen.com/subject/zffipctx.html