import和require的区别

import是ES6标准中的模块化解决方案,require是node中遵循CommonJS规范的模块化解决方案。

后者支持动态引入,也就是require(${path}/xx.js),前者目前不支持,但是已有提案。

前者是关键词,后者不是。

前者是编译时加载,必须放在模块顶部,在性能上比后者好一些;后者是运行时加载,理论来说放在哪里都可以。

前者采用的是实时绑定方式,即导入和导出的值都指向同一个内存地址,所以导入的值会随着导出值变化;而后者在导出时是指拷贝,就算导出的值变化了,导入的值也不会变化,如果想要更新导入的值,就要重新导入。

前者会编译成require/exports来执行。

相关推荐
微小冷9 分钟前
Rust异步编程详解
开发语言·rust·async·await·异步编程·tokio
CappuccinoRose12 分钟前
JavaScript 学习文档(二)
前端·javascript·学习·数据类型·运算符·箭头函数·变量声明
A9better12 分钟前
C++——不一样的I/O工具与名称空间
开发语言·c++·学习
清水白石00815 分钟前
《为什么说 deque 是 Python 滑动窗口的“隐藏神器”?深入解析双端队列的高效之道》
开发语言·python
杜子不疼.16 分钟前
Ascend_C自定义算子开发
c语言·开发语言
这儿有一堆花18 分钟前
Vue 是什么:一套为「真实业务」而生的前端框架
前端·vue.js·前端框架
WooaiJava32 分钟前
流式TTS音频播放项目 - 面试问答(后端)
java·开发语言
全栈前端老曹33 分钟前
【MongoDB】深入研究副本集与高可用性——Replica Set 架构、故障转移、读写分离
前端·javascript·数据库·mongodb·架构·nosql·副本集
新缸中之脑41 分钟前
开发AI代理必备的8个Python 库
开发语言·人工智能·python
暴走十八步44 分钟前
PHP+vscode开启调试debug
开发语言·vscode·php