为什么导出默认常量无效?

在使用 ES6 模块系统时,经常会遇到导出默认常量无效的问题。例如:

-- ---------
------ ------- ----- ----- - ------ -------

-- -------
------ ----- ---- --------------
------------------- -- ----------- ------------ ---------- ----------

以上代码会报错,提示“Unexpected identifier”,说明导出默认常量的语法是有问题的。

问题的原因

导出默认常量有两种常见方法:

  • 声明并导出常量
  • 直接导出一个表达式

这两种方法的正确写法分别为:

-- -----------
----- ----- - ------ -------
------ ------- ------

-- -------------
------ ------- ------ -------

但是,在第一种方法中,如果不小心将 const 和变量名放错位置,就会写成如下错误的语法:

-- ------- ----- ----------
------ ------- ----- ----- - ------ -------

这种写法容易让人产生「声明并导出常量」的错觉,实际上却是把 constmyVar 这个变量名都当作导出的属性名了,所以会报错。

解决方案

要解决这个问题,只需要按照正确的语法来声明和导出常量即可。如果想要把常量声明和导出放在一行,可以使用括号:

-- ----------
------ ------- ------ ----- - ------ ------- -------

这样写的意思是先声明并赋值 myVar,然后再把 myVar 作为默认导出返回。

指导意义

在编写 JavaScript 代码时,要对语法非常熟悉,尤其是在使用 ES6 的模块系统时更要小心。要避免将不同的语法元素混在一起,导致出现难以发现的错误。同时,在写代码之前,也应该先大致设计好代码结构,尽可能规范化命名和注释,增强代码可读性和可维护性。

示例代码

-- -------------
----- ----- - ------ -------
------ ------- ------

-- ---------------
------ ------- ------ -------

-- ----------------
------ ------- ------ ----- - ------ ------- -------

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/11088