一.前言:

用模块写代码,为什么要用模块来写代码:ES6之前,在js中定义的一切,都是共享一个全局作用域的,随着web应用变得复杂,这样做会引起如:命名冲突和安全问题、于是引入了模块。

二.清楚一个概念:

  • export 和 export default 是ES6 里面的API(本文只介绍ES6的)
  • exports 和 model..exports 是node.js里面的API,更切确的说是Common.js里的(就和require 和 import 相似)

三.export

// a.js
export let a = 1 //输出变量
export fn(){...} //输出函数
export class Class{
constructor(a,b){
this.a = a;
this.b = b;
}
} //输出类 fn2(){...} //定义一个函数
export fn2; //建议以这种在末尾统一输出的方式export
export {fn2 ,fn}; //导出多个变量,要有{}
export {fn2 as asFn2}; //导出时重命名,要有{} // b.js
import {fn2} from 'a.js'; //export 的引入要加{},单个也要加;
import {fn2 , a , Class as Class1} from 'a.js' //引入多个要用 ‘,’隔开;
import * as example from 'a.js'; //引入整个模块
example.a = 1; //使用模块,在有很多需要引入时,建议这种方法;

四.export defalut(模块的默认值)

  // a.js
export default function(num1,num2){...} //导出默认值,只能导出一个
export let a = 1; //导出变量a // b.js import any from 'a.js'; //引入默认值,any 可以是任意的名字,不用{}
import {a} from 'a.js'; //引入a ;
import any,{a} from 'a.js' //默认值必须放在非默认值前面
import {default as any , a} from 'a.js' //有重命名就要大括号包起来

总结:

  • export :

    • 单个不用括号,多个要用{},as也要用{}; (因为export default 只能export 一个);
  • import

    • 除了* as ,别的重命名都要用{}
    • export 要用{}
    • 既有export 和 export default时:import any,{a} from 'a.js’ 默认写前面

by:Beast 原创:转载请声明

觉得对你有用,请点赞!欢迎探讨指点!

你可以说出export export default || model.exports exports 的区别吗(一)的更多相关文章

  1. module.exports,exports,export和export default,import与require区别与联系【原创】

    还在为module.exports.exports.export和export default,import和require区别与联系发愁吗,这一篇基本就够了! 一.首先搞清楚一个基本问题: modu ...

  2. module.exports,exports,export和export default,import与require区别与联系

    还在为module.exports.exports.export和export default,import和require区别与联系发愁吗,这一篇基本就够了! 一.首先搞清楚一个基本问题: modu ...

  3. exports module.exports export export default之间的关系

    exports 和module.exports是CommonJS模块规范 export export default是ES6模块的规范,两者完全是不同的概念. node应用由模块组成,采用的是Comm ...

  4. ES6的export与Nodejs的module.exports

    原文:https://www.cnblogs.com/lxg0/p/7774094.html module.exports与exports,export与export default之间的关系和区别 ...

  5. export export defalut

    require/exports 和 import/export 形式不一样 require/exports 的用法只有以下三种简单的写法: const fs = require('fs') expor ...

  6. node.js module.exports & exports & module.export all in one

    node.js module.exports & exports & module.export all in one cjs const log = console.log; log ...

  7. Sqoop导入数据到mysql数据库报错:ERROR tool.ExportTool: Error during export: Export job failed!(已解决)

    问题描述: Container killed by the ApplicationMaster. Container killed on request. Exit code is 143 Conta ...

  8. vue使用填坑之:model和v-model的区别

    v-model通常用于input的双向数据绑定 <input v-model="parentMsg">,也可以实现子组件到父组件数据的双向数据绑定:首先说说v-mode ...

  9. ES6中export , export default , import模块系统总结

    最近在学习使用Webpack3的时候发现,它已经可以在不使用babel的情况下使用ES6的模块加载功能了. 说到ES6的模块加载功能,我们先复习一下CommonJS规范吧: 一  . CommonJS ...

随机推荐

  1. JAVA——选择,循环,顺序控制结构

    目录 一.顺序控制 二.选择控制 2.1分支控制 2.1.1单分支 2.1.2双分支 2.1.3分支控制if-else 2.1.4嵌套分支 2.2switch分支结构 细节讨论 练习 题目1 题目2 ...

  2. PHP pdf转png linux版本

    linux下 安装 ImageMagick 及其 php imagick扩展 PHP版本 7.1.29 : ImageMagick版本 ImageMagick-7.0.8-68: PHP扩展imagi ...

  3. Kubernetes系列(四) StatefulSet

    作者: LemonNan 原文地址: https://juejin.im/post/6870071267438329869 Kubernetes系列(四) StatefulSet Kubernetes ...

  4. 线程的sleep()方法和yield()方法有什么区别?

    sleep()方法和yield()方法的区别: sleep()方法给其他线程运行机会时,不考虑线程的优先级,因此会给低优先级的线程运行机会:yield()方法只会给相同优先级或更高优先级的线程运行机会 ...

  5. python 之 matplotlib 练习

    import numpy as npimport matplotlib.pyplot as plt x = np.linspace(0,10,1000)# 自变量y = np.sin(x) + 1 # ...

  6. JVM学习总结(一)

    JVM--Java虚拟机 1.类加载器 JVM虚拟机的类加载器有三个 bootstrapClassLoader 引导类加载器 是有C语言编写,在JVM虚拟机启动时 加载到内存中负责加载rt.jar夹包 ...

  7. 在kali中安装两个版本的python

    在kali中安装两个版本的python 在kali中已经预装了两个版本的python,但是没有装pip(>︿<). 这时使用python或者python3表示python3:使用pytho ...

  8. Java多线程【三种实现方法】

    java多线程 并发与并行 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行 并行:一组程 ...

  9. web服务器-nginx配置文件

    web服务器-nginx配置文件 一 nginx配置文件 #启动子进程程序的默认用户 #user nobody #一个主进程和多个工作进程.工作进程是单进程的,且不需要特殊授权即可运行:这里定义的是工 ...

  10. JavaScript 02 运算符,分支结构

    一元换算符 字符串类型 对于字符串,来说自增或自减会自动进行类型转换 1.var str = '10' 自动转换 从string转为number 2.str++ NaN 对于转化不成功的string类 ...