import和require的区别

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

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

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

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

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

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

相关推荐
小七不懂前端几秒前
我用 NestJS + Vue3 + Prisma + PostgreSQL 打造了一个企业级 sass 多租户平台
前端·vue.js·后端
晚星star4 分钟前
2.2 Node的模块实现
前端·node.js
zYear5 分钟前
Three.js 入门指南:揭开 3D 网页的魔法面纱
前端
Crystal3286 分钟前
图片懒加载
前端·javascript·代码规范
想学后端的前端工程师14 分钟前
【Java设计模式实战应用指南:23种设计模式详解】
java·开发语言·设计模式
小白勇闯网安圈21 分钟前
Java的集合
java·开发语言
Revol_C22 分钟前
开箱即用!轻量级轮询方案,支持同步获取轮询结果!
前端·javascript·设计模式
38242782735 分钟前
python:正则表达式
前端·python·正则表达式
渣渣盟37 分钟前
网络命令大全:轻松解决网络故障
开发语言·php
Mr Tang38 分钟前
Docker日志查看和应用日志查看命令大全
java·开发语言