区别1:模块加载的时间
test(); import {
test} from '/test';
上面的代码不会报错,正常执行
区别2:模块的本质
// CommonJS模块 let {
exists, readFile } = require('fs'); // 等同于 let fs = require('fs'); let exists = fs.exists; let readfile = fs.readfile;
上面CommonJs模块中,实质上整体加载了fs对象(fs模块),然后再从fs对象上读取方法
// ES6模块 import {
exists, readFile } from 'fs';
上面ES6模块,实质上从fs模块加载2个对应的方法,其他方法不加载
区别3:严格模式
// m1.js export var foo = 'bar'; setTimeout(() => foo = 'baz', 500); // m2.js import {
foo} from './m1.js'; console.log(foo); //bar setTimeout(() => console.log(foo), 500); //baz
ES6 模块之中,顶层的 this 指向 undefined ,即不应该在顶层代码使用 this
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233933.html原文链接:https://javaforall.net