es6中模块导入导出与node中的模块系统的区别

7 篇文章 0 订阅

es6中的模块导入方法与node中的区别

node中的导入导出方式是:

导入:require

require('./xxx')

var add = require('./main')
console.log(add.add(1,2));
console.log(add.obj.a);

导出:exports module.exports

  • export.a=1

  • module.exports.a=1

    function add(x,y){
        return x+y
    }
    let obj = {
        a:1,
        b:2
    }
    /*方式一*/
    exports.add = add//将add函数赋值给exports.add
    exports.obj = obj
    /*方式二*/
    module.exports = {add,obj}
    

es6中的导入导出方式是

导入:

  • 通用导入方式

    import * as xx(修改引用名) from ‘xxx’(要引入的模块的地址)

    import * as m1 from './js/m1.js'
    console.log(m1.a)
    m1.fun()
    import * as m3 from './js/m3.js'
    console.log(m3);
    console.log(m3.default.school);
    
  • 解构赋值导入方式

    import {a,b}(es6中解构赋值的形式获取模块暴露的变量) from ’xxx‘(要引入的模块的地址)

    	import {a,fun} from './js/m1.js'
        console.log(a);
        import {school,getSchool} from './js/m2.js'
        console.log(school);
        import {default as m3} from './js/m3.js'//将默认暴露的default对象用变量m3来接收
        m3.change()
    
  • 针对默认暴露的导入方式

    针对默认暴露 不需要像通用导入和解构赋值一样使用default.属性来调用

       import m3 from './js/m3.js'
        console.log(m3);
        console.log(m3.school)
        m3.change()
    

导出:

  • 分别暴露

    export const a = 1
    export function fun(){
        console.log("我是分别暴露的函数");
    }
    
  • 统一暴露

    let school = '朝阳小学'
    function getSchool(){
        console.log(school);
    }
    export {school,getSchool}
    
  • 默认暴露

    export default {
        school:'大哥大',
        change:function(){
            console.log("我们可以改变世界!");
        }
    }
    

区别

对于node中的模块系统,在模块导入导出的过程中,node底层为每个js文件都创建了一个名为module对象,module对象中有一个含有一个名为exports的成员变量

在导出模块时,需要往exports对象中添加需要导出的属性和方法

对于es6中的模块方法,我们可以通过import来导入模块,通过export和export default来导出模块,并可以使用解构赋值等新特性来使得导入导出更加便捷

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值