require和import区别

require和import区别区别 1 模块加载的时间 require 运行时加载 import 编译时加载 效率更高 区别 2 模块的本质 require 模块就是对象 输入时必须查找对象属性 import ES6 模块不是对象 而是通过 export 命令显式指定输出的代码 再通过 import 命令输入 这也导致了没法引用 ES6 模块本身 因为它不是对象 CommonJS 模块 let exists read

区别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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号