`出口默认让foo = ...`抛出“意外的严格模式保留字”
问题描述:
我试图在Chrome Dev(v60,在撰写本文时)启用“Experimental Web Platform”标志来使用JavaScript模块。`出口默认让foo = ...`抛出“意外的严格模式保留字”
当我尝试导入该模块:
export default let foo = 10;
我收到此错误信息:
Uncaught SyntaxError: Unexpected strict mode reserved word
它工作正常,没有default
关键字。而这个工作太细:
let a = 10;
export default a;
MDN没有明确说,export default ...
符号被允许与let
,var
,const
等,但它们确实给人以函数的例子是这样的:
export default function (…) { … }.
和变量是这样的:
export let name1 = …, name2 = …, …, nameN;
问题:当前规范不可能像使用函数和类一样使用default
关键字导出常规变量吗?
答
export
有strictly defined syntax,默认输出正确的语法是
export default expression;
let foo = 10
不是一个表达式,但声明。它可用于命名导出:
export let name1, name2, …, nameN;
对于默认导出名称是不需要的。
类似于export default function (…) { … }
,它应该是
export default 10;
啊我明白了,不知道我只是做'出口默认10;'!但是为什么他们在[MDN文章](https://developer.mozilla.org/en/docs/web/javascript/reference/statements/export)中有这个例子呢? 'export let name1 = ...,name2 = ...,...,nameN;' – JoeRocc
正如答案所说,它是* named exports *,not for * default *('default'实际上是名称)。 – estus
“'default”实际上是名称“ - 合理!谢谢! – JoeRocc