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

默认导出实际上是JavaScript中的命名导出吗?,javascript,es6-modules,Javascript,Es6 Modules,我现在已经读了很多遍,默认导出实际上只是名为default的命名导出。现在,这让我想知道混合默认和命名导出时的行为是什么:通常,它们可以很好地一起使用。但是,如果我定义了一个默认导出,以及一个名为default的命名导出,该怎么办 这里运行时/编译器的预期行为是什么 名为default的命名导出 这是不可能的,因为default是保留关键字。如果你想做类似的事情 export const default = 'bar'; 或者尝试命名一个变量default,然后将其导出 const defau

我现在已经读了很多遍,默认导出实际上只是名为
default
的命名导出。现在,这让我想知道混合默认和命名导出时的行为是什么:通常,它们可以很好地一起使用。但是,如果我定义了一个默认导出,以及一个名为
default
的命名导出,该怎么办

这里运行时/编译器的预期行为是什么

名为default的命名导出

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

export const default = 'bar';
或者尝试命名一个变量
default
,然后将其导出

const default = 'bar';
export default;
解释器将抛出语法错误并拒绝继续解析

因此,不可能发生这样的碰撞

名为default的命名导出

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

export const default = 'bar';
或者尝试命名一个变量
default
,然后将其导出

const default = 'bar';
export 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}

任何保留关键字都不能用作变量名(标识符),因为它是一个关键字,所以您不能将其用作变量名,解释器将出错

错误语句取决于浏览器

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}

deafult
是一个不能用作变量名的关键字
deafult
是一个不能用作变量名的关键字,非常感谢!只要我能接受答案,我就会接受!很有道理,非常感谢!只要我能接受答案,我就会接受!