import和require的区别

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

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

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

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

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

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

相关推荐
搬山.摧城3 分钟前
线程池和单例模式
开发语言·单例模式
FinClip4 分钟前
凡泰极客亮相香港金融科技周,AI助力全球企业构建超级应用
前端
百锦再6 分钟前
第1章 Rust语言概述
java·开发语言·人工智能·python·rust·go·1024程序员节
一叶之秋141217 分钟前
QT背景介绍与环境搭建
开发语言·qt
阿四23 分钟前
【Nextjs】为什么server action中在try/catch内写redirect操作会跳转失败?
前端·next.js
申阳25 分钟前
Day 6:04. 基于Nuxt开发博客项目-LOGO生成以及ICON图标引入
前端·后端·程序员
java1234_小锋27 分钟前
PyTorch2 Python深度学习 - 模型保存与加载
开发语言·python·深度学习·pytorch2
中国lanwp38 分钟前
npm中@your-company:registry 和 registry 的区别
前端·npm·node.js
Bacon39 分钟前
Electron 应用商店:开箱即用工具集成方案
前端·github
行走的陀螺仪41 分钟前
uni-app + Vue3 实现折叠文本(超出省略 + 展开收起)
前端·javascript·css·uni-app·vue3