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

Javascript ES6中的解构。我应该担心吗?,javascript,ecmascript-6,undefined,destructuring,Javascript,Ecmascript 6,Undefined,Destructuring,正在进行解构实验,发现相同的代码适用于stackoverflow,而不是Codepen(toy获得“未定义”): 这是什么意思?在我的项目中使用分解结构时,我应该担心吗 让obj={ 物种:“猫”, //玩具:“球”, } 函数whatDoTheyDo({species,toy=“ball”}){ return${species}使用${toy}玩游戏` } 文件。书写(whatDoTheyDo(obj))您只需在CodePen中将预处理器设置为babel,否则它将使用标准ES5,在这里不支

正在进行解构实验,发现相同的代码适用于stackoverflow,而不是Codepen(toy获得“未定义”):

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

让obj={
物种:“猫”,
//玩具:“球”,
}
函数whatDoTheyDo({species,toy=“ball”}){
return${species}使用${toy}玩游戏`
} 

文件。书写(whatDoTheyDo(obj))
您只需在CodePen中将预处理器设置为
babel
,否则它将使用标准ES5,在这里不支持解构

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


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

,这似乎一定是CodePen中的一个错误-如果您将预处理器设置为“无”,那么肯定应该保持代码不变?但它似乎把它写成
函数whatDoTheyDo({species,toy}){
-ie缺少默认值,因此它对其进行了一些预处理,并将其破坏。我应该在服务器上也设置babel吗?或者ES6默认打开吗?@AlexeyTseitlin-babel不应该是服务器端。它是一个Transfilation库。它将ES6代码转换为ES5代码,并在兼容ES5的浏览器中运行。我不完全理解您的意思是指“在我的服务器上”,但如果你说的是NodeJS,我相信版本6对ES6有很好的支持。不过,如果你想100%确定的话,你可能需要进行传输。@guest271314这两者的结合-解构有效,默认参数有效;只有当你给解构参数一个默认值时,它才会失败-codepen只需重写代码就可以了不再具有默认值。