ES6中的解构。我应该担心吗?

时间:2016-07-05 08:56:46

标签: javascript ecmascript-6 undefined destructuring

尝试解构并发现相同的代码适用于stackoverflow而不是Codepen(玩具得到“未定义”):http://codepen.io/tsalexey544/pen/VjWxmm?editors=0010#

这是什么意思?我在项目中使用解构时应该担心吗?

let obj = {
  species: "Cat",
  // toy: "ball",
}

function whatDoTheyDo ({species, toy = "ball"}) {
  return `The ${species} playes with a ${toy}`
} 

document.write(whatDoTheyDo(obj));

1 个答案:

答案 0 :(得分:2)

您只需要在CodePen中将预处理器设置为babel,否则它将使用标准ES5,其中不支持解构。

如果您想使用ES6 / ES7功能,您必须使用某些工具(例如Babel)将代码“转换”回ES5。有些浏览器已经支持某些ES6功能,但完全支持仍然有点不稳定。

编辑 - 回答您的问题:是的,您应该担心提供有效的ES5代码,因为ES6尚未完全支持。至少您应该将代码提供给Babel并发布生成的代码,但我强烈建议您查看Webpack并查找完整的工具链