JavaScript模块化

es6之前js不支持模块化,社区制定一套模块规范commonjs(主要要服务器 nodejs require('http')),AMD(requireJs,curlJs)或者CMD(seaJs)

es6出来后统一服务端和客户端模块规范

模块化:
a)如何定义模块? 
            export 东西
            export const a=12;
            export{
             a as aaa,
             b as bbb
            }
b)如何使用?
            import
            import './modules/1.js';
            import {a as aa, banana,c as cc} from ''
            import * as modTwo from ''
关于import{}  当export出的东西是default的时候不加{},否则加{}

使用模块:
import: 特点
a) import可以是相对路径也可以是绝对路径
    import 'https://code.jquery.com/jquery-3.3.1.min.js'
b) import模块只会导入一次,无论你引入多少次
c)import './modules/1.js'; 如果这么用,相当于引入文件
d) 有提升效果,import会自动提升到顶部,首先执行
e) 导出去模块内容,如果里面有定时器更改,外面也会改动,不像common规范缓存

*import()类似node里面require,可以动态引入,默认import语法不能写到if之类里面
返回值是个Promise对象
import('./modules/1.js').then(res=>{
        console.log(res.a,res.b);
});
优点:1按需加载   2.可以写if中   3路径也可以动态改变

==============================
'use strict'     默认是严格模式

你可能感兴趣的:(JavaScript模块化)