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

标签 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));

最佳答案

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

如果您想使用 ES6/ES7 功能,您必须使用某些工具(例如 Babel)将您的代码“转译”回 ES5。 .一些浏览器已经支持一些 ES6 特性,但完全支持仍然参差不齐。

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

关于javascript - ES6 中的解构。我应该担心吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38199182/

相关文章:

javascript - jQuery 在过滤 AJAX 响应时返回未定义

javascript - 为什么以下 javascript 会抛出 TypeError?

javascript - 删除数组对象 es6 中的属性

module - ES6 模块 : Sustainability of TypeScript internal modules & Bundles

javascript - 为什么 "~undefined"在 JavaScript 中是 -1?

javascript - 在全局变量中存储 getJSON 数据,但后来说它未定义

javascript - 我运行应用程序时出现 Angular2 GZIP 问题

javascript - 如何在 typescript 声明文件中定义单例 javascript 类

javascript - ESLint 解析错误 : Unexpected token . .. 仅在一个剩余运算符上

javascript - 无法读取 JavaScript 中未定义数组错误的属性长度?