默认导出实际上是 JavaScript 中的命名导出吗?

Is a default export actually a named export in JavaScript?

我已经多次读到默认导出实际上只是一个名为 default 的命名导出。现在这让我想知道混合默认和命名导出时的行为是什么:通常,它们一起玩得很好。但是,如果我定义一个默认导出和一个名为 default?

的命名导出会怎样?

此处运行时/编译器的预期行为是什么?

a named export named default

这是不可能的,因为default是保留关键字。如果你尝试做类似

的事情
export const default = 'bar';

或者尝试命名一个变量default然后导出它

const default = 'bar';
export default;

解释器将抛出 SyntaxError 并拒绝继续解析。

因此,不可能发生此类碰撞。

任何保留关键字都不能用作变量名(标识符),default是关键字所以不能用作变量名,解释器会报错

Identifier expected

错误语句取决于浏览器

SyntaxError: The use of a future reserved word for an identifier is invalid (Edge)
SyntaxError: "x" is a reserved identifier (Firefox)
SyntaxError: Unexpected reserved word (Chrome)

当你尝试这个时

export const default = {some: value}