javascript - 这些代码在解构对象中有什么功能上的区别吗?

标签 javascript destructuring

当我使用解构赋值从数组中赋值变量时,我找到了另一种解构方法。这两个代码有什么区别吗?

这是来自 freeCodeCamp 的挑战,使用 javascript,ES6。

const LOCAL_FORECAST = {
  today: { min: 72, max: 83 },
  tomorrow: { min: 73.3, max: 84.6 }
};

function get_MaxOfTmrw(forecast) 
{
    const {tomorrow:{max : max_OfTomorrow}} = forecast;

    return max_OfTomorrow;
}

function get_MaxOfTmrw(forecast) 
{

    const {max : max_OfTomorrow}} = forecast.tomorrow;

    return max_OfTomorrow;
}

console.log(get_MaxOfTmrw(LOCAL_FORECAST));

最佳答案

只有需要默认值才会有区别

function get_MaxOfTmrw(forecast)
{
    const { tomorrow: { max : max_OfTomorrow  = 0 } = {} } = forecast
    return max_OfTomorrow
}

function get_MaxOfTmrw(forecast) 
{
    const { max : max_OfTomorrow = 0 } = forecast.tomorrow; // what if tomorrow is undefined?
    return max_OfTomorrow;
}

关于javascript - 这些代码在解构对象中有什么功能上的区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55516075/

相关文章:

javascript - Cufon 的问题。需要帮忙?

javascript - 每次用户打开浏览器时运行的 Google Chrome API 中的事件是什么?

lisp - 在解构绑定(bind)中声明未使用变量的任何好方法?

javascript - Es6 : Short version for destructuring

javascript - 解构对象作为函数参数

javascript - 您如何摆脱 <div> 点击时弹出的随机 "pressed"类?

javascript - 在 d3.js 中,更新主图表以在添加/删除线条时反射(reflect)画笔状态

javascript - if-else 在 JavaScript 中不起作用

javascript - 不清楚 ES6 解构函数参数默认值

javascript - 为什么在使用分号时此 JavaScript 不被解释为代码块?