export与export default

ゝ一世哀愁。 2021-11-02 06:18 465阅读 0赞

export本质上是对外暴露一个接口,来指向内部的引用,所以内部与外部必须一一对应,我们可以这样写:

  1. export var a;
  2. export var b;

  这本质上是对外的一个引用,如果我们这样写:

  1. var a = 1;
  2. export a

  这样的话 直接对外导出一个a,他并不是一个对内的引用,所以这样写法是错的

那export default呢?export default就是输出一个叫做default的变量或方法,然后系统允许你为它取任意名字

  1. import {
  2. default as foo} from 'foo'
  3. 等同于
  4. import foo from 'foo'

正是因为export default命令其实只是输出一个叫做default的变量,所以它后面不能跟变量声明语句。

  1. //错误
  2. export default var a = 1;
  3. //正确
  4. var a = 1;
  5. export default a;

  因为export default命令的本质是将后面的值,赋给default变量,所以可以直接将一个值写在export default之后。

export default对应函数的声明却是例外的,我们可以在export default使用函数声明语句

对于export default只是export的一个语法糖,我们从另外一个角度也能看出来,当我们使用es6来导出的时候:

a.js:export default a;

b.js:export {a}

我们使用require分别引用a.js和b.js ,我们会发现引用出来的对象想要拿到a的时候,对于b.js而言 直接可以用过点语法拿到,而a.js却需要一层.default.a才可以拿到,实际上是因为import默认给default元素增加一个变量名 并在import的时候做了处理

转载于:https://www.cnblogs.com/mrzhu/p/11075780.html

发表评论

表情:
评论列表 (有 0 条评论,465人围观)

还没有评论,来说两句吧...

相关阅读