解构赋值默认值[重复]

2024-01-10

我正在学习 javascript,在解构时尝试为变量提供默认值时,我有点受困于 ES6 语法。 基本上,我试图分配一个变量,为其提供对象属性的值,如果该值为 false/null/undefined,我希望它是一个空对象。 例如,

let foo = { 
            prop1: 'hello!',
            prop2: null 
           }

const prop1 = foo.prop1 || {}
const prop2 = foo.prop2 || {}

console.log(prop1) //  hello!
console.log(prop2) //  {}

????这就是我想要的,????是我认为与上面等效的ES6糖语法(它不起作用..)

let foo = { 
            prop1: 'hello!',
            prop2: null 
           }

const { prop1 = {} } = foo
const { prop2 = {} } = foo

console.log(prop1) // hello!
console.log(prop2) // null

但不知何故,有时它似乎在 React 中工作,但其他时候则不然......这是兼容性问题吗?太令人困惑了!


您可能对 null 和 undefined 之间的区别感到困惑,例如:

const { dogName = 'snickers' } = { dogName: undefined }
console.log(dogName) // what will it be? 'snickers'!

const { dogName = 'snickers' } = { dogName: null }
console.log(dogName) // what will it be? null!

const { dogName = 'snickers' } = { dogName: false }
console.log(dogName) // what will it be? false!

const { dogName = 'snickers' } = { dogName: 0 }
console.log(dogName) // what will it be? 0!

const { dogName = 'snickers' } = { }
console.log(dogName) // what will it be? 'snickers'!

取自:http://wesbos.com/destructuring-default-values/ http://wesbos.com/destructuring-default-values/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解构赋值默认值[重复] 的相关文章

随机推荐

  • 使用 Struts 2 中的拦截器进行身份验证后登录重定向

    我有一个登录页面 登录请求可以来自多个操作类 一旦用户经过验证 我必须将其重定向到上一个操作类 登录请求来自该操作类 我正在使用拦截器来执行此操作 但我错过了一些东西 它无法正确重定向 这是我的代码 public class SetTarg
  • Windows Phone:按下后退按钮时,IE 或 Edge 中缺少模糊事件

    以下场景与 Windows Phone 设备 IE 或 Edge 相关 场景一 如果输入元素具有焦点并且软键盘处于打开状态 则按硬件后退键会模糊焦点元素并按应有的方式弹出键盘 但是 没有触发相应的模糊事件 场景2 如果输入元素具有焦点并且软
  • libpcap 用于捕获 10 Gbps NIC

    我想从10Gbps网卡上抓包 0丢包 我正在将 lipcap 用于 100Mbps NIC 并且工作正常 libpcap 能够处理 10Gbps NIC 流量吗 如果不是 还有什么其他替代方法可以实现这一目标 libpcap 是否能够以 0
  • 如何找到进程的入口点(或基地址) - 处理 ASLR

    由于ASLR 地址空间布局随机化 自Windows Vista起 exe的基地址是随机的 因此无法在PE文件中找到它 在 Visual C 中 DYNAMICBASE 选项默认启用 因此基地址 exe 的运行是随机的 每次加载程序加载它时
  • Socket.SendAsync 需要几秒钟才能完成

    我正在尝试优化 TCP 套接字包装器 该包装器正在处理大量入站连接 我正在一个基本的聊天服务器和一个小型客户端应用程序中测试它 以将客户端发送到它 这两个应用程序都位于通过千兆位交换机连接的单独 W2k3 服务器上 通过反复试验 我将测试改
  • 如何比较postgres中的两个表

    我想比较来自两个不同查询的两个列值 谁能建议一个比较 Postgres 中两列的查询 嗯 最容易理解的 但不一定是最快的 可能是这样的 但你所说的 比较 可能还有其他意思 Values in column1 that aren t in c
  • 子进程调用 ls 时出错

    知道错误想说什么吗 Traceback most recent call last File
  • Jquery - 是否可以重命名 js 函数?

    希望可以有人帮帮我 我有一个类似的功能 是否可以将此函数重命名 或克隆 为my test 2 提前致谢 Peter 功能有一流的物体 http en wikipedia org wiki First class object在 JavaSc
  • 如何更改 Vuetify v-autocomplete 菜单边框半径样式?

    我想改变盒子的样式v autocomplete下拉列表并给出border radius样式到下拉列表 如下图所示 到目前为止我设计的内容如下图所示 到目前为止 我已经将 menu props 属性直接赋予v autocomplete tag
  • 在Powershell中,有没有办法将html转换为具有深度的对象?

    我正在使用 Powershell 来试验网络抓取 想知道是否有更简单的方法来处理元素 有没有办法将 Html 页面转换为 powershell 中具有适当深度的对象 类似于 Convert ToJson Depth 的东西吗 例如 要得到某
  • Eclipse 条件断点,在任何字符串等于处断点

    我有一个大型 遗留 应用程序 我必须对其进行修复 其代码结构很糟糕 代码味道太多 让我窒息 我真的无法弄清楚 gui 中的字符串填充在哪里 因此 如果我能以某种方式在任何字符串 我不知道变量的名称或它在哪里 等于 foobar 时有一个表达
  • 如何使用 Python 自动杀死占用过多内存的进程?

    情况 我有一个网站 允许人们执行任意代码用另一种语言 具体来说 是我创建的 esolang 在共享托管服务器上使用 Python 解释器 我在一个单独的进程中运行此代码 该进程的时间限制为 60 秒 问题 你可以做类似的事情 Python等
  • msbuild 从属性组创建项目组

    我想传递一个以分号分隔的字符串列表 每个字符串代表一个文件名
  • 为什么我永远不应该使用不安全的块来修改字符串?

    我有一个字符串 我想以某种方式修改它 例如 反转或大写 我发现最快的方法是使用不安全的块和指针 例如 unsafe fixed char str text str X 有什么理由让我永远不应该这样做吗 Net 框架要求字符串是不可变的 由于
  • 自定义 Seaborn histplot 子图中的图例

    我正在尝试生成一个包含 4 个子图的图形 每个子图都是 Seaborn 直方图 图形定义线为 fig axes plt subplots 2 2 figsize 6 3 7 sharex True sharey True ax1 ax2 a
  • 训练 Tesseract 特定单词 - 可能吗?

    我想使用 Tesseract 从文档中提取大约 10 20 个关键字 该文档将包含所有英文字符 单词 我感兴趣的是 年龄 23 之类的东西 这里 Age 是我感兴趣的关键字 也想提取 23 它的值 我想到的第一个方法是将整个页面提取为文本
  • 多边形轮廓上的边并不总是正确的

    我使用下面的算法来生成四边形 然后将其渲染以形成如下所示的轮廓 http img810 imageshack us img810 8530 uhohz png http img810 imageshack us img810 8530 uh
  • Python 从并行目录导入模块

    我将如何组织我的 python 导入 以便我可以拥有这样的目录 project init py src init py classes py test init py tests py 然后在 project test tests py 中
  • 完成所有登录过程后如何获取ExternalIdentity?

    我正在使用 MVC 5 我可以使用 Google 成功登录 我想在登录过程后访问用户的外部身份声明 例如 我想在视图中访问用户的声明 图片 但是 如果我尝试运行此代码 它总是返回 null 登录过程中除外 自动生成 mvc 模板代码 有没有
  • 解构赋值默认值[重复]

    这个问题在这里已经有答案了 我正在学习 javascript 在解构时尝试为变量提供默认值时 我有点受困于 ES6 语法 基本上 我试图分配一个变量 为其提供对象属性的值 如果该值为 false null undefined 我希望它是一个