默认导出实际上是 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
是关键字所以不能用作变量名,解释器会报错
错误语句取决于浏览器
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}
我已经多次读到默认导出实际上只是一个名为 default
的命名导出。现在这让我想知道混合默认和命名导出时的行为是什么:通常,它们一起玩得很好。但是,如果我定义一个默认导出和一个名为 default
?
此处运行时/编译器的预期行为是什么?
a named export named default
这是不可能的,因为default
是保留关键字。如果你尝试做类似
export const default = 'bar';
或者尝试命名一个变量default
然后导出它
const default = 'bar';
export default;
解释器将抛出 SyntaxError 并拒绝继续解析。
因此,不可能发生此类碰撞。
任何保留关键字都不能用作变量名(标识符),default
是关键字所以不能用作变量名,解释器会报错
错误语句取决于浏览器
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}