export

export后必须跟语句, 何为语句, 如声明, for, if 等都是语句, export 不能导出匿名函数, 也不能导出某个已经声明的变量, 如:

export const bar = function() {};	// 合法
export bar; // 非法
export 1; // 非法
export function foo () {}; // 合法, 后跟的是声明语句
export { foo }; // 合法, 后面跟的{}理解为语句, 就像if后面的{}一样
export { foo as bar }; // 合法
export { foo: foo }; // 非法, 后面的{}被解析成对象

export default

export default在整个模块中只能出现一次, 后只能具体的值, 何为具体的值, 如1, 2, 3, 再比如一个函数声明(非表达式), 或者是一个类声明(与函数声明一个意思), 或者匿名函数, 只要是能用变量接受的都可以, 例子:

export default 1;					// 合法
export default function foo() {}; // 合法, 因为function foo() {} 能被变量接受, 如 var bar = function foo() {}
export default const bar = 1; // 非法, 因为var a = const bar = 1 是不合法的
export default { foo }; // 合法, {} 被理解为一个对象
export default { foo: foo }; // 合法, 同上

导出语句只能出现在模块的顶级作用域中, 不能被其他语句包含

import

import语法为:

import { x, y } from './test.js';
import * as some from './test.js'; // 命名空间导入
import './test.js';
import { default as test } from './test.js';

导入再导出

export { some } from './test.js';
export * from './test.js';

导入后跟需要导入的绑定和模块说明符, 导入绑定的列表并非对象的解构, 二者并无关联, 导入的标识符很像const声明的变量, 不可更改, 也同时存在暂时性死区, 如有理解错误的地方还请不吝指教

最新文章

  1. Endnote专题之--output style相关问题
  2. js中判断true和false的情况
  3. 《linux内核设计与实现》读书笔记第一、二章
  4. II7下配置SSAS通过HTTP 远程链接访问
  5. WP8_区分滑动和点击(在图片列表中)
  6. java环境设置与运行
  7. javaSE_06Java中的数组(array)
  8. P1050
  9. 通过 Visual Studio 的“代码度量值”来改进代码质量
  10. 013_UDP专项研究监控
  11. 【jpa】spring data jpa 配置使用
  12. Java WebService接口生成和调用 图文详解>【转】【待调整】
  13. Jmeter小技巧以及问题集合
  14. Linux服务器---流量监控MRTG
  15. 【原理、命令】Git基本原理、与Svn的区别、命令
  16. 十九. Python基础(19)--异常
  17. JS一行代码,生成一个16进制随机颜色,简单粗暴。
  18. js jquery 取得周月年时间
  19. vue-cli 3.0 开启 Gzip 方法
  20. mysql 主从同步遇到的问题(1032)

热门文章

  1. marquee跑马灯效果的相关属性
  2. 51 Nod 1134 最长递增子序列(经典问题回顾)
  3. Qtcreator 之中文目录
  4. TopCoder SRM 667 Div.2题解
  5. d3.js+svg的树形图
  6. 微信小程序需求IIS服务器配置https关于SSL,TLS的综合解决方案
  7. spring框架中AOP思想与各种配置详解
  8. 清明 DAY 4
  9. N2RR
  10. VS Code 中的LaTeX自动保存问题