a.js 与 b.js属于同一个文件夹
a.js 导出模块
const PI = Math.PI
// 导出模块
// 写法1:
export default PI
// 写法2:
export default {
PI
}
b.js 导入模块
impot tmp from './b'
console.log(tmp) // a.js 中写法1 与 写法2在b.js中结果是什么? 为什么?
export default PI 就是只导出PI.
export default { PI, PI2 } 会导出 PI,PI2(有的话.)
写法1:直接输出3.141592653589793 写法2:输出{ PI: 3.141592653589793 } 写法2的export等于
export default {
PI: PI,
}
也就是先创建了一个包含这个PI的对象,然后export default这个对象
额 上面回答的差不多了 我就指出一个小问题吧 impot tmp from ‘./b’ 错了吧 应该是 impot tmp from ‘./a’
export, export default 你可能没弄明白,你可以看一看阮一峰老师的这篇文章export, export default
export default实际是将default后面的常量、变量、函数、对象赋值给一个名为default的属性上: (export default 常量、变量、函数、对象) ------------>>> (exports.default = 常量、变量、函数、对象) 只是es6默认会将这个default变量传给import prop from 'xxx’中的prop,完整写就是(import { default as prop} from ‘xxx’) 在es6中直接import是符合直觉的,default也像一个关键词,但是如果转成es5用module require的方式引入,那么就千万记得,const xxx = require(‘modulename’).default;export default的东西挂在这个属性下哦