- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用一些像这样的解构:
const { item } = content
console.log(item)
但是我应该如何处理 content === undefined
- 这会引发错误?
“旧”方式如下所示:
const item = content && content.item
因此,如果 content
未定义 -> item
也将未定义。
我可以使用解构做类似的事情吗?
最佳答案
您可以使用short circuit evaluation如果 content
是一个假值,则提供默认值,在这种情况下通常是 undefined
或 null
。
const content = undefined
const { item } = content || {}
console.log(item) // undefined
一种不太惯用的 ( see this comment ) 方法是在解构对象之前将内容传播到对象中,因为 null
and undefineds
values are ignored .
const content = undefined
const { item } = { ...content }
console.log(item) // undefined
如果您要解构函数参数,则可以提供默认值(示例中为 = {}
)。
注意:仅当解构参数为 undefined
时才会应用默认值,这意味着解构 null
值将引发错误.
const getItem = ({ item } = {}) => item
console.log(getItem({ item: "thing" })) // "thing"
console.log(getItem()) // undefined
try {
getItem(null)
} catch(e) {
console.log(e.message) // Error - Cannot destructure property `item` of 'undefined' or 'null'.
}
如果输入对象不包含该属性,甚至可以为 item
属性设置默认值
const getItem = ({ item = "default" } = {}) => item
console.log(getItem({ item: "thing" })) // "thing"
console.log(getItem({ foo: "bar" })) // "default"
关于javascript - JS/ES6 : Destructuring of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48433008/
有 destructuring-bind 但似乎没有 destructuring-setq。是否可以使用 destructuring-bind 来定义它? (let (a b c d) (dest
我遇到了一个我无法解决的丑陋问题。我是 React 的初学者。 这是我的代码 handleCheckChildElement(event) { let items = this.state.i
在 React 项目中,我想通过在特定时间记录特定状态部分来快速解决问题。 console.error('this.state.thing', this.state.thing); 这样做,我的 ES
hylang 是否像 clojure 中那样支持映射解构? 例如:https://gist.github.com/john2x/e1dca953548bfdfb9844#maps 最佳答案 Hy 没有
我正在尝试解构绑定(bind),如下所示: (destructuring-bind (a b) '(1 2) (list a b))) 当我在 REPL 中评估它时,我得到:
我已启用 SeriLog(最新版本)自记录功能,并且看到数百条消息说 Maximum destructuring depth reached 不知道这意味着什么以及这是否是我需要担心的问题。 有谁知道
我正在编写一个小型 React Native 应用程序,并且正在尝试使用 Flow,但我无法在任何地方真正获得有关它的正确教程。 我不断收到错误:关于此代码第一行中的 ({ station }) 的解
在 modules 文件夹中设置 redux 文件: \modules \application \actions application.js
我收到 JavaScript 错误 "missing = in destructuring declaration" 可能是什么问题? 最佳答案 这不是标准的 JavaScript 错误。它来自您的编
我正在使用一些像这样的解构: const { item } = content console.log(item) 但是我应该如何处理 content === undefined - 这会引发错误?
法拉第扫描函数的来源( https://github.com/ptaoussanis/faraday/blob/master/src/taoensso/faraday.clj#L1197 )有一个我正
我应该如何重写以下行以避免出现此错误 ctrl.formData.type = ctrl.types[0]; 最佳答案 根据 prefer-destructuring docs 调整规则配置应该避免这
有没有办法把下面的代码写得短一些? const { user } = JWT.verify(req.params.token, keys.secretOrKey); const { email } =
以下代码: export const myFunction = ({ option1, option2 }) => {}; ...给出: destructuring. Missing annotati
我有这个功能: const calculateTotal = (items) => { return items.reduce((totalPrice, basketItem) => {
我试图将应用程序下的所有组件包装在一个上下文中以提供我想要的东西 (如您所见,这是我的 UserContext 组件) enter code here import React, { useStat
这段代码有什么问题吗? class App extends React.Component { constructor(props) { super(props); this.st
我正在尝试编写一个宏,该宏扩展为具有解构的 let 形式。我的问题是我想拥有以 let 形式定义的符号列表,包括通过解构获得的符号列表。 用例 我试图排除这种行为,例如验证: (let [a (foo
嘿,我有这样的 uiTypes.js 文件: export default { SELECT_ITEM: 'SELECT_ITEM', DESELECT_ITEM: 'DESELECT_ITE
刚刚开始使用 Flow,但似乎无法理解它希望我为解构对象(例如 props)添加类型来做什么 即 render({ count }, { displayHelp }) { 抛出类似的错误 16:
我是一名优秀的程序员,十分优秀!