【发布时间】:2021-05-21 06:34:11
【问题描述】:
在开发我的 react 应用程序时,我需要向组件发送一个条件 prop,因此我在某处找到了这样做的模式,尽管这对我来说似乎很奇怪,而且我不明白它是如何以及为什么工作的。
如果我输入:
console.log(...undefined) // Error
console.log([...undefined]) // Error
console.log({...undefined}) // Work
当在 undefined 上激活扩展运算符时,会引发错误,尽管当 undefined 在对象内部时,会返回一个空对象。
我对这种行为感到非常惊讶,它真的应该是这样吗,我可以依赖它吗?这是一个好习惯吗?
【问题讨论】:
-
我认为任何依赖迭代器的东西都会抛出
null或undefined,因为没有办法在这些值上实现所需的方法。我不知道为什么对象传播语法有效。 -
想一想,我想对象字面量传播语法不会失败是有道理的,因为它传播的通常是另一个普通对象,并且默认情况下它们不是迭代器,所以它们在这种情况下几乎必须破例。
-
{...undefined}这甚至不能用 Babel 编译,所以我不会使用。 -
实际上废弃了,它需要
stage-0所以我假设不是 ES6 .. 这个传播特性会是 ES7 吗?
标签: javascript ecmascript-6 javascript-objects spread-syntax