es6 export问题

// 报错
export 1;

// 报错
var m = 1;
export m;

// 写法一
export var m = 1;

// 写法二
var m = 1;
export {m};

// 写法三
var n = 1;
export {n as m};

原文:上面两种写法会报错,因为没有提供对外的接口。
请问什么叫没有提供对外的接口,为什么加{}就算接口了?

阅读 13.1k
3 个回答

前面两个例子的错误是"SyntaxError: Unexpected token export",翻成中文是"语法错误: 不预期的符号于export"。我是不知道"没有提供对外的接口"的报错是在何处来的?是在import的时候的错误吗?

{}是export的语法标准,与对象无关,这是ExportClause,也就是语句中的子句写法,其中可以包含多个要汇出的变量。基本上有三种导出语句如下,但其中又分为多个细部选项。

// 导出一个脚本中已存在的函数/变量
export { myFunction }; 

 // 导出一个变量声明
export var foo = 2;

// 默认导出 (每个脚本只能有一个):
export default myFunctionOrClass // 或者 'export default class {}'

上面的例子来自以下参考站:

JS是基于对象的语言,而模块即对象(符合AMD或者CMD标准的),是需要引用的模块返回一个对象的。因此加了{}的区块被对象话,则可以作为对象引入了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题