commonjs和esmodule
commonjs的模块导出和引用写法:
lib.js 导出一个模块
let a = 1
let b = 2
function aPlus1() {return a++
}
module.exports = {a,b,aPlus1
}
index.js引用一个模块
const {a,b,aPlus1} = require('./lib.js')
console.log('hh:',a)
esmodule的模块导出和引用方法:
lib.mjs
export let a = 1
export let b = 2
index.mjs
import {a,b} from './lib.mjs'console.log(a)
console.log(b)
总结
commonjs使用require关键字来导入模块,使用module.exports来导出模块。
esmodule使用import {a} from './lib.mjs'来导入模块,使用export来导出模块。
存在的区别:
- 模块加载和执行的时间点不同。CommonJS的模块在运行时加载和执行,而ES Module的模块在编译时就已经加载和执行。
- 模块导出和导入的方式不同。CommonJS使用module.exports导出模块的输出,使用require导入其他模块。导出时,通常是创建一个值的副本,导入时,这个副本被修改不会影响导出的值。而ES Module使用export导出模块的输出,使用import导入其他模块。导出时,创建的是值的引用,因此对导出值的任何修改都会反映在导入模块中。
- 模块作用域不同。在CommonJS中,模块内的代码运行在顶层作用域中,可能会污染全局作用域。而ES Module则为每个模块创建一个独立的作用域,避免全局作用域的污染。
相关文章:
commonjs和esmodule
commonjs的模块导出和引用写法: lib.js 导出一个模块 let a 1 let b 2 function aPlus1() {return a } module.exports {a,b,aPlus1 } index.js引用一个模块 const {a,b,aPlus1} require(./lib.js) console.log(hh:,a) esmodule的模块导出和引用方法&#x…...
Android的编译系统
安卓的编译真的太多吐槽的地方了,有必须到croot下编译的,有随便改个.c就要七八分钟编译的。我有时候真的不知道这么多开发人员是怎么挺过来的。 今晚简单看看这个编译系统soong吧。 算了,下面这个写的很好了,我先看看吧。。。 …...
Midjourney指控Stability AI夜袭数据,网络风波一触即发
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
JVM知识整体学习
前言:本篇没有任何建设性的想法,只是我很早之前在学JVM时记录的笔记,只是想从个人网站迁移过来。文章其实就是对《深入理解JVM虚拟机》的提炼,纯基础知识,网上一搜一大堆。 一、知识点脑图 本文只谈论HotSpots虚拟机。…...
蓝桥杯--日期统计
目录 一、题目 二、解决代码 三、代码分析 四、另一种思路 五、关于set文章推荐 一、题目 二、解决代码 #include <bits/stdc.h> using namespace std; int main() {int arr[100] { 5,6,8,6,9,1,6,1,2,4,9,1,9,8,2,3,6,4,7,7,5,9,5,0,3,8,7,5,8,1,5,8,6,1,8,3,0,…...
[leetcode~dfs]1261. 在受污染的二叉树中查找元素
给出一个满足下述规则的二叉树: root.val 0 如果 treeNode.val x 且 treeNode.left ! null,那么 treeNode.left.val 2 * x 1 如果 treeNode.val x 且 treeNode.right ! null,那么 treeNode.right.val 2 * x 2 现在这个二叉树受到「污…...
PyQt5使用
安装Pyqt5信号与槽使用可视化界面编辑UI (Pyside2)ui生成之后的使用(两种方法)1 ui转化为py文件 进行import2 动态调用UI文件 安装Pyqt5 pip install pyqt5-tools这时候我们使用纯代码实现一个简单的界面 from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButto…...
利用GPT开发应用005:Codex、Turbo、ChatGPT、GPT-4
文章目录 一、GPT-3 Codex二、GPT-3.5 Turbo二、ChatGPT三、GPT-4 一、GPT-3 Codex 2022年3月,OpenAI 发布了 GPT-3 Codex 的新版本。 这个新模型具有编辑和插入文本的能力。它们是通过截至 2021 年 6 月的数据进行训练的,并被描述为比之前版本更强大。到…...
制造行业大数据应用:四大领域驱动产业升级与智慧发展
一、大数据应用:制造行业的智慧引擎 随着大数据技术的不断突破与普及,制造行业正迎来一场前所未有的变革。大数据应用,如同智慧引擎一般,为制造行业注入了新的活力,推动了产业升级与创新发展。 二、大数据应用在制造行…...
25.5 MySQL 聚合函数
1. 聚合函数 聚合函数(Aggregate Function): 是在数据库中进行数据处理和计算的常用函数. 它们可以对一组数据进行求和, 计数, 平均值, 最大值, 最小值等操作, 从而得到汇总结果.常见的聚合函数有以下几种: SUM: 用于计算某一列的数值总和, 可以用于整数, 小数或者日期类型的列…...
多维时序 | Matlab实现VMD-CNN-LSTM变分模态分解结合卷积神经网络结合长短期记忆神经网络多变量时间序列预测
多维时序 | Matlab实现VMD-CNN-LSTM变分模态分解结合卷积神经网络结合长短期记忆神经网络多变量时间序列预测 目录 多维时序 | Matlab实现VMD-CNN-LSTM变分模态分解结合卷积神经网络结合长短期记忆神经网络多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介…...
用Python进行机器学习:Scikit-learn的入门与实践【第126篇—Scikit-learn的入门】
用Python进行机器学习:Scikit-learn的入门与实践 随着机器学习在各个领域的广泛应用,Python成为了一个备受欢迎的机器学习工具之一。在众多机器学习库中,Scikit-learn因其简单易用、功能强大而备受青睐。本文将介绍Scikit-learn的基本概念&am…...
2024年G3锅炉水处理证模拟考试题库及G3锅炉水处理理论考试试题
题库来源:安全生产模拟考试一点通公众号小程序 2024年G3锅炉水处理证模拟考试题库及G3锅炉水处理理论考试试题是由安全生产模拟考试一点通提供,G3锅炉水处理证模拟考试题库是根据G3锅炉水处理最新版教材,G3锅炉水处理大纲整理而成࿰…...
常用的gpt网站
ChatGPT是一款基于人工智能技术的对话型AI助手,能够进行自然语言交互并提供个性化的对话服务。通过先进的深度学习模型,ChatGPT能够理解用户输入的文本,并生成有逻辑、连贯性的回复。它可以回答各种问题、提供建议、分享知识,还能…...
java中string类型常用的37个函数
java中string类型常用的37个函数—无极低码 int indexOf(int ch, int fromIndex) 、int indexOf(int ch) 、int indexOf(String str, int fromIndex) 、int indexOf(String str) 、int lastIndexOf(int ch, int fromIndex) 、int lastIndexOf(int ch) 、int lastIndexOf(Strin…...
【JVM】字节码指令 getstatic
在Java虚拟机(JVM)中,getstatic 是一个字节码指令,用于从类的静态字段(Static Field)获取值,并将这个值压入当前方法的操作数栈顶。这个操作仅适用于类级别的静态变量,而非实例变量。…...
P1179 [NOIP2010 普及组] 数字统计
#include <bits/stdc.h> using namespace std;int main(){int l;int r;cin>>l>>r;int sum 0;for (int i l;i < r;i){int temp 0;int j i;while(j){if(j % 10 2){temp;}j j/10;}sum sum temp;}cout << sum;return 0; }[NOIP2010 普及组] 数字…...
使用Java的等待/通知机制实现一个简单的阻塞队列
Java的等待/通知机制 Java的等待通知机制是多线程间进行通信的一种方式。 有三个重要的方法:wait(),notify() 和以及notifyAll() wait():该方法用于让当前线程(即调用该方法的线程)进入等待状态并且释放掉该对象上的…...
linux kernel物理内存概述(七)
目录 一、内核中小内存、频繁分配和释放场景 二、slab是内存池化技术 三、内核中使用slab对象池的地方 四、slab内核设计 使用比页小的内存,内核的处理方式使用slab 一、内核中小内存、频繁分配和释放场景 slab首先会向伙伴系统一次性申请一个或者多个物理内存…...
【C#】.net core 6.0 使用第三方日志插件Log4net,日志输出到控制台或者文本文档
欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。…...
径向基RBF神经网络的故障分类与故障诊断的Matlab程序代码
径向基RBF神经网络的故障分类与故障诊断matlab 程序代码一、程序概述 本程序基于径向基函数(RBF)神经网络,实现对故障数据的自动化分类与诊断。通过读取标准化故障数据集,完成数据预处理、网络构建训练、故障分类预测及结果评估全…...
行业内GEO优化服务哪家可靠
行业内可靠的GEO优化服务之选在当今数字化时代,随着用户搜索习惯从传统搜索引擎向生成式AI平台转型,企业面临着传统SEO/社媒营销失效、品牌曝光锐减等问题。GEO(生成式引擎优化)优化服务成为企业抢占AI搜索流量高地的关键。那么&a…...
如何为Wolverine贡献代码:从Bug报告到PR提交的完整指南
如何为Wolverine贡献代码:从Bug报告到PR提交的完整指南 【免费下载链接】wolverine 项目地址: https://gitcode.com/gh_mirrors/wo/wolverine Wolverine是一个能为Python脚本提供"再生修复能力"的工具,当脚本运行出错时,它…...
用快马AI快速原型你的技能组合:一键生成个人技能展示页
今天想和大家分享一个快速验证技能组合的小技巧——用InsCode(快马)平台一键生成个人技能展示页。作为开发者,我们经常需要向团队或客户展示自己的技术栈,但手动写前端页面太耗时。最近发现用AI生成原型特别高效,整个过程不到10分钟就能获得可…...
Reverse Attention背后的数学原理:为什么它能有效提升边缘检测性能?
Reverse Attention的数学奥秘:如何通过反向思维提升边缘检测精度 在计算机视觉领域,边缘检测一直是个既基础又关键的任务。从早期的Canny算子到如今的深度学习模型,研究者们不断探索更精准的边缘提取方法。而Reverse Attention(反…...
告别繁琐下载:一键获取国家中小学智慧教育平台电子教材的智能解决方案
告别繁琐下载:一键获取国家中小学智慧教育平台电子教材的智能解决方案 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内…...
通义千问3-Embedding-4B一键部署:5分钟搭建知识库向量化服务
通义千问3-Embedding-4B一键部署:5分钟搭建知识库向量化服务 1. 为什么选择Qwen3-Embedding-4B 1.1 模型核心优势 Qwen3-Embedding-4B是阿里通义千问系列中专注于文本向量化的4B参数双塔模型,具有以下突出特点: 高效能低消耗:…...
重启 CSDN 两周复盘:从 0 到 10700 + 阅读,37 岁老码农的内容创作实战
从 3 月 23 日正式重启 CSDN,到今天 4 月 6 日,整整两周时间。从最初的「码龄 14 年,重新出发」,到现在累计10700 总阅读量、155 分原力值,这两周的每一步,都是我对「个人技术品牌」的真实实践,…...
开题之后,如何继续用图和表推进本科毕业设计与毕业论文写作?——以系统开发类和网络规划设计类选题为例
把图和表从“开题工具”和“写作材料”,提升为本科生理解和实践工程化思想的方法支架。 作者:非凡大爹|版本:v2.0|日期:2026-04-06|DocID:GRAD-2026S-PG-02 原创声明:本…...
VibeVoice保姆级教程:从部署到实战,打造你的专属语音助手
VibeVoice保姆级教程:从部署到实战,打造你的专属语音助手 1. 引言:为什么选择VibeVoice? 想象一下,你正在开发一个需要语音交互的应用,或者想为视频内容添加专业配音,又或者需要为视障用户提供…...
