JavaScript 函数的默认值在 JS Fiddle 中抛出错误

Default value for JavaScript function throws error in JS Fiddle

我正在尝试定义一个简单的函数,例如:

function example(foo, bar = 'hello') {
    console.log(bar);
}

example('hi');

JS Fiddle(在 运行 时查看控制台中的错误):

SyntaxError: Unexpected token '='. Expected a ')' or a ',' after a parameter declaration.

虽然 MDN 描述这在 IE 和 Safari 中不可用,但我的理解是包括 Babel 应该允许 ES 6 功能,或者这是一个误解?

仅仅包含 https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.13.2/babel.min.js (babel-standalone) 作为脚本是不够的。您要么必须使用类型为 text/babel 的脚本标记,要么使用 Babel API 来编译您的代码 (Babel.transform())。参见 Usage in babel-standalone GitHub page

然而,JS Fiddle 提供了一种使用 Babel 的更简单的方法。只需点击右上角的 "JavaScript",然后选择 Babel 作为语言。

corrected JS Fiddle

看看这个。您的代码没有正确转译。

<script type="text/babel">
function example(foo, bar = 'hello') {
    console.log(bar);
}

example('hi');
</script>

jsfiddle: https://jsfiddle.net/Refatrafi/15mxehrx/2/