commonjs和esmodule

2024-03-13 08:52
文章标签 commonjs esmodule

本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/804298

相关文章

uniapp vite3 require导入commonJS 的js文件方法

vite3 导入commonJS 方式导出 在Vite 3中,你可以通过配置vite.config.js来实现导入CommonJS(CJS)风格的模块。Vite 默认支持ES模块导入,但如果你需要导入CJS模块,可以使用特定的插件,比如@originjs/vite-plugin-commonjs。 首先,你需要安装插件: npm install @originjs/vite-plugin-c

js模块化 --- commonjs规范 原理详解

什么是commonjs规范         commonjs是一种模块化规范(nodejs的默认模块化规范,新版的nodejs已经支持es6的模块化,但它默认任然使用的是commonjs),通俗的说它将代码分割成了一个一个的模块,让不同的模块拥有自己独立的作用域(类似命名空间的隔断),在不同的模块中实现了重复命名的效果,同时支持模块的导入导出,让模块与模块之间可以相互调用,实现代码的复用。

一文搞懂 JavaScript 模块化规范:CommonJS、AMD、ES6 Module

🔥 个人主页:空白诗 文章目录 一、为什么需要模块化?二、早期的模块化标准2.1 CommonJS 规范2.1.1 CommonJS 简介2.1.2 CommonJS 的特性2.1.3 CommonJS 的使用示例2.1.4 CommonJS 可能出现的问题 2.2. AMD 规范2.2.1 AMD 简介2.2.2 AMD 的特性2.2.3 AMD 的使用示例2.2.4 A

ESM和CommonJS详解

概述 ESM 和 CommonJS 是前端非常常见的两种规范或模块标准,本文将重点讲述这两者的定义、适用范围以及区别。 ESM ESM即 ECMAScript Modules,是 Javascript 的官方模块化标准,旨在统一 Javascript 的模块化机制。 ESM 的导出和导入 导出:使用 export 关键词导出模块内容,可以是命名导出或默认导出 /** a.js */e

深入解析JavaScript模块化开发:ES6模块与CommonJS的对比与应用

一、ES6模块(ES Modules) ES6模块是ECMAScript 2015(也称为ES6)引入的标准化模块系统。它在语法上原生支持,并且广泛应用于现代JavaScript开发中。ES6模块通过import和export关键字来导入和导出模块,具有静态分析的特点,这意味着在代码执行前,模块依赖关系就已经确定。 特点: 静态导入: 在编译阶段解析模块依赖关系,能够实现更高效的打包和代码分

【JavaScript】JavaScript模块化开发:ES6模块与CommonJs的对比与应用

1. 模块化开发的背景与必要性 1.1 JavaScript发展与模块化需求 JavaScript最初被设计为一种简单的脚本语言,用于实现网页上的交互功能。随着互联网技术的发展,Web应用变得越来越复杂,JavaScript代码量急剧增加,这导致了代码维护和复用变得困难。为了解决这些问题,模块化开发应运而生。 模块化开发允许开发者将大型应用拆分成多个小型、独立的模块,每个模块负责特定的功能。

JavaScript 模块化开发:ES6 模块与 CommonJS 的对比与应用

​ ​ 您好,我是程序员小羊! 前言 随着前端项目规模的增长,代码组织和管理变得越来越复杂。模块化开发成为解决这一问题的有效手段,能够帮助开发者将代码进行分割、复用和维护。JavaScript 在发展过程中出现了多种模块化规范,其中最为广泛使用的有 ES6 模块(也称为 ES Modules)和 CommonJS 模块规范。本文将从原理、语法、应用场景和两者对比等多个方面深入探讨这两

NodeJS-如何去理解CommonJS

先偏移主题,聊聊闭包 JavaScript中具有全局作用域和函数作用域: 函数内部可以直接读取全局变量,在函数外部无法读取函数内部的局部变量 如何获取内部变量的呢? 闭包: 闭包就是能够读取其他函数内部变量的函数 function fn() {var a = 1;return function () {a++;console.log(a);}}var foo = fn();foo(); //

commonjs、amd、cmd

CommonJS是在浏览器环境之外构建JavaScript生态系统为目标产生的项目,比如服务器和桌面环境中。CommonJS规范是为了解决JavaScript的作用域问题而定义的模块形式, 可以使每个模块在它自身的命名空间中执行。该规范的主要内容是:模块必须通过  module.exports导出对外的变量或接口,通过require()来导入其他模块的输出到当前模块。 module.e

【学习】CommonJS规范和实现

写在前面 一言以蔽:CommonJS是服务器端模块的规范,Node.js采用了这个规范。 commonJS简介 根据CommonJS规范,一个单独的文件就是一个模块。加载模块使用require方法,该方法读取一个文件并执行,最后返回文件内部的exports对象。 举个例子 example.js console.log("evaluating example.js");var in