CommonJS 模块编程(新思路方便复习笔记)

4 篇文章 1 订阅
订阅专栏

目录

CommonJS 模块编程(新思路方便复习笔记)

基本介绍

模块化编程原理示意图

模块化编程分类

CommonJS 模块编程

介绍

应用实例

1. 需求说明

2. 思路分析/图解

 3. 代码实现

创建 function.js

创建use.html

创建use.js


CommonJS 模块编程(新思路方便复习笔记)

基本介绍

1 传统非模块化开发有如下的缺点:(1)命名冲突 (2)文件依赖[代码演示]

2 Javascript 代码越来越庞大,Javascript 引入模块化编程,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块

3 Javascript 使用"模 块"(module)的概念来实现模块化编程, 解决非模块化编程问题

4 模块化 也是 ES6 的新特性

模块化编程原理示意图

模块化编程分类

  1. CommonJS 模块化规范/ES5 的写法
  2.  ES6 模块化规范

CommonJS 模块编程

介绍

1. 每个 js 文件就是一个模块,有自己的作用域。在文件中定义的变量、函数、类/对象,都是私有的,对其他 js 文件不可见

2. CommonJS 使用 module.exports={} / exports={} 导出 模块 , 使用 let/const 名称 =require("xx.js") 导入模块

应用实例

1. 需求说明

1) 编写 functions.js , 该文件有函数,变量, 常量, 对象, 数组。。。

2) 要求在 use.js , 可以使用到 function.js 中定义的 函数/变量/常量/对象

3) 请使用模块化编程的方式完成, 将各种写法都写一下

2. 思路分析/图解

 3. 代码实现

创建 function.js

定义对象,变量,常量, 函数

导出解读
1. module.exports 导出模块
2. 把你需要导出的数据, 写入到 {}中即可
3. 可以全部导出,也可以部分导出
4. 理解:相当于把我们导出的数据,当做一个对象
5. 如果属性名和函数/变量/对象..名字相同,可以简写
6. 有些前端, 简写 module.exports={} 成 exports={}

//定义对象,变量,常量, 函数
const sum = function (a, b) {
    return parseInt(a) + parseInt(b);
}

const sub = function (a, b) {
    return parseInt(a) - parseInt(b);
}

let name = "xxxx";

const PI = 3.14;

const monster = {
    name: "牛魔王",
    age: 500,
    hi() {
        console.log("hi 你好 牛魔王");
    }
}

//导出
/*
解读
1. module.exports 导出模块
2. 把你需要导出的数据, 写入到 {}中即可
3. 可以全部导出,也可以部分导出
4. 理解:相当于把我们导出的数据,当做一个对象
5. 如果属性名和函数/变量/对象..名字相同,可以简写
6. 有些前端, 简写 module.exports={} 成 exports={}
 */
exports = {
    sum,
    sub,
    name,
    PI
}
// module.exports = {
//     sum,
//     sub,
//     name,
//     PI
// }
// module.exports = {
//     sum: sum,
//     sub: sub,
//     myname: name,
//     PI: PI
// }
创建use.html

在html文件中要使用js

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>use</title>
    <!--在html文件中要使用js-->
    <script type="text/javascript" src="./function.js"></script>
</head>
<body>

</body>
</html>
创建use.js

导入解读
1. 在es5中, 我们通过 require 就包 对应.js中的数据/对象,引入
2. 我们使用的时候,通过m.属性 就可以使用
3. 如果我们导入时,不需要所有的,可以导入部分数据

使用

说明: 只要这里idea可以识别变量/函数/对象, 说明OK

//导入
//解读
//1. 在es5中, 我们通过 require 就包 对应.js中的
//数据/对象,引入
//2. 我们使用的时候,通过m.属性 就可以使用
//3. 如果我们导入时,不需要所有的,可以导入部分数据
const m = require("./function.js");

const {sub} = require("./function.js");

//使用
//说明: 只要这里idea可以识别变量/函数/对象, 说明OK
console.log(m.sub("100","200"));
console.log(m.sum(10,90));
console.log(m.name)
console.log(m.PI);
console.log(sub(19,8));

4. 要看运行效果,需要 Node 环境, node 环境这里为了简单, 只要 use.js 可以解析 sum 和 sub 说明是正确

JS模块化-实现一个简单的CommonJS
水蓝针织
11-08 788
待续
esm-es5:将 ES2015 模块语法转换为可在 AMD 或 CommonJS 模块系统中使用的 ES5 代码
05-29
esm-es5 将 ES2015 模块语法转换为可在 AMD 或 CommonJS 模块系统中使用的 ES5 代码。 不支持所有的 ES2015 语法,比如类或粗箭头,只是做了一些与import和export相关的轻量翻译工作。 在某些项目中使用,以验证生命周期和模块系统的互操作性。 用法 // source is the String contents of a module, options is an object. var esmResult = esmEs5 ( source , options ) ; // esmResult has these properties: // Indicates if import or export use was detected and converted. esmResult . translated = Boolean ; /
CommonJS模块化教程
qq_50680212的博客
06-17 604
CommonJS模块化教程
commonjs学习
齐枫的博客
10-24 497
参考  阮一峰nodejs    : http://javascript.ruanyifeng.com/nodejs/module.html
nodejs入门教程之CommonJs学习(二)
TristanWong的博客
06-23 404
学习背景 很早之前,我们在网页中写js逻辑常常都是一个js文件从头写到尾,也很少考虑去分成多个模块。渐渐的随着项目增大,js代码维护就变得异常困难,为了解决这个问题前端模块化应运而生,比如用的比较多的requireJs。在nodejs中也会面临这个问题,所以nodejs也有他的解决方案,就是我们要掌握的CommmonJs规范。 软件工程中,程序功能讲究高内聚低耦合。就是把软件分为各个模块,每个模块集中实现自己功能,减少对其他模块的依赖。在CommonJs规范中,我们通常需要定义一个个模块(module),每
CommonJS浏览器端模块化教程
萌古大汗的专栏
07-11 305
###1.创建项目结构 ``` |-js |-dist//生成打包文件的目录 |-src//源码所在的目录(我们编写的、没经过工具处理的代码,叫做源码) |-module1.js |-module2.js |-module3.js |-app.js |-index.html |-package.json { "name":"test-0318", "version...
详谈commonjs模块与es6模块的区别
10-19
下面小编就为大家带来一篇详谈commonjs模块与es6模块的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
JavaScript:模块编程CommonJS教程
最新发布
07-14
JavaScript:模块编程CommonJS教程
ES6与CommonJS中的模块处理的区别
10-18
ES6和CommonJS都有自己的一套处理模块化代码的措施,这篇文章主要介绍了ES6与CommonJS中的模块处理的区别,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
webpack4.x CommonJS模块化浅析
10-17
主要介绍了webpack4.x CommonJS模块化浅析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
CommonJS(基本使用)
qq_43447509的博客
07-22 494
模块化有俩个核心:导入和导出 //CommonJS的导出 module.exports = { flag: true, test(a, b) { return a + b }, demo(a, b) { return a * b } } //CommonJS的导出 let { test, demo, flag} = require('moduleA'); //等同于 let mA = require('moduleA'); let test = mA.test; le
3_CommonJS-Browserify模块化教程
wl_qianduan的博客
08-18 118
CommonJS 浏览器端模块化教程 ###1. 创建项目结构 |-js |-dist //生成编译完js的目录 |-src //源码所在的目录(我们编写的、没经过工具处理的代码,叫做源码) |-module1.js |-module2.js |-module3.js |-main.js |-index.html ###2. 模块化编码 module1.js module.exports = { foo() { console.log('moudle
commonjs 使用与原理
Lc_style的博客
11-11 7892
commonjs特点: 1.在commonjs中每一个 js 文件都是一个单独的模块,我们可以称之为 module; 2.该模块中,包含 CommonJS 规范的核心变量: exports、module.exports、require; 3.exports 和 module.exports 可以负责对模块中的内容进行导出; 4.require 函数可以帮助我们导入其他模块(自定义模块、系统模块、第三方库模块)中的内容; 简单的导出(fn_data.js): let name = '张三..
commonjs使用 范例
fly_wugui的博客
05-17 2817
commonJS 规范 千言万语不如一行代码 例 //example.js var n = 1; function sayHello( name ){ var name = name || &quot;Tom&quot;; return &quot;Hello~&quot;+name } function addFn(val){ var val = val.x+val.y; return val }...
AMD&CommonJS入门学习
github_25505453的博客
02-26 2891
今天学习了一下模块化开发的规范AMD和CommonJS, 整理一下所学也希望大家能一同学习探讨。AMD和CMD是什么AMD是RequireJS推广过程中对模块的规范化,理念是依赖前置,速度快、会浪费资源; CMD是SeaJS推广过程中对模块的规范化,理念是依赖就近,性能较差,只有使用时才加载。 RequireJS、Sea.js、curl.js都属于脚本加载器,就是以一种规范的形式去加载存在依赖
common.js标准和ES6标准下Node模块的导入导出
qq1319504645的博客
04-23 356
自己随手写的,很基础的东西
前端进阶课程之模块化(一)CommonJS规范
weixin_34408717的博客
11-23 86
一:CommonJS规范的应用场景 node模块化采用CommonJS规范,而webpack也是基于node去搭建的,所以webpack内部也是采用commonjs规范 二:node中CommonJS规范的基本应用 // index.js console.log(module); // 输出 { id: '/Users/x/Documents/code/demo/index.js', ...
什么是commonJS模块以及使用方法
Huahua0323的博客
06-25 2287
在上面的例子中,`someFunction` 函数被定义为模块的一部分,并通过 `module.exports` 导出。每个模块都有自己的作用域,模块内部的变量和函数默认是私有的,不会污染全局命名空间。如果你想在浏览器或支持 ES 模块的环境中使用 `import` 和 `export` 语法,你可以使用构建工具(如 Babel、Webpack)将模块转换为符合 ES 模块规范的代码。通过 CommonJS 模块,你可以实现模块的定义、导出和加载,使代码可以更好地组织和复用。
Node模块CommonJs导出方式module.exports和exports的区别
lxming38的博客
09-12 686
NodeJs模块化方式CommonJs导出方式module.exports和exports的区别
JavaScript CommonJS 模块
02-22
JavaScript CommonJS 模块是一种使用 JavaScript 语言实现的模块编程规范。它是在服务器端开发 Node.js 应用程序时使用最广泛的模块化方案之一。 CommonJS 模块使用 `module.exports` 和 `require` 关键字来定义和使用模块。`module.exports` 属性用于导出模块中的内容,而 `require` 函数用于在其他文件中引用并使用导出的内容。 例如,假设你有一个名为 `math.js` 的文件,其中定义了两个函数: ```js // math.js function add(a, b) { return a + b; } function subtract(a, b) { return a - b; } module.exports = { add: add, subtract: subtract }; ``` 然后,你可以在另一个文件中使用 `require` 函数来引用这个模块并使用它: ```js // main.js const math = require('./math'); console.log(math.add(1, 2)); // 3 console.log(math.subtract(1, 2)); // -1 ``` 这样,就可以在 `main.js` 中使用 `math.js` 中导出的函数了。 CommonJS 模块常用于服务器端开发,但是也可以使用工具将其转换为浏览器可以使用的形式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • HttpServletRequest的介绍和方法以及代码实战 10196
  • java 安装和环境配置(2024-4月保姆级最新版) 7887
  • 数据结构(二)基本概念和术语 6046
  • Win11桌面出现的这个图标“了解此图片”怎么关闭? 5349
  • 绝对有效,牛津《书虫》全系列完整版( 电子书+MP3 ) 4895

分类专栏

  • 编程思维
  • 算法分析 26篇
  • 数据结构 11篇
  • 实战项目 3篇
  • 后台管理 4篇
  • 源码分析 7篇
  • 手写机制和源码分析 30篇
  • 扩展知识
  • 面试汇总 10篇
  • bug错误汇总 7篇
  • 考证和比赛 13篇
  • python 11篇
  • Nginx 5篇
  • Linux 21篇
  • 前端技术栈 4篇
  • 三剑客 9篇
  • Vue前端框架 8篇
  • Thymeleaf 和jsp 6篇
  • jQuery和JSON 10篇
  • 主流框架
  • 微服务组件 16篇
  • Spring Boot全家桶 10篇
  • mybits 9篇
  • spring 21篇
  • springMVC 16篇
  • 数据库
  • Mysql 11篇
  • Redis 13篇
  • java
  • javaweb 基础 10篇
  • Java新特性 12篇
  • session和Cookie 6篇
  • Servlet和Ajax 8篇
  • java基础 11篇
  • 常用工具
  • git 3篇
  • 其他工具 2篇
  • maven 6篇
  • matlab和数学建模 2篇

最新评论

  • java 安装和环境配置(2024-4月保姆级最新版)

    ㅤ遁出红尘: 我找到解决办法了,我是安装在D盘里面,在jdk安装的时候自动在c盘里面也有一个jdk在环境变量PATH里面,把那个c盘的C:\Program Files (x86)\Common Files\Oracle\Java\javapath移到最后或者是删掉就行了

  • java 安装和环境配置(2024-4月保姆级最新版)

    ㅤ遁出红尘: 我也是,Java命令不行

  • java 安装和环境配置(2024-4月保姆级最新版)

    2401_86266322: 为什么我的JAVA不可以,javac可以?

  • java环境变量配置以及“‘javac‘ 不是内部或外部命令”问题的解决方法(2024年6月姆级最新)

    尘觉: 前提是输入‘java -version’有反应

  • java环境变量配置以及“‘javac‘ 不是内部或外部命令”问题的解决方法(2024年6月姆级最新)

    尘觉: “%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; ”这个是放在path必须要放在第一个位置,这样输入javac就会正确输出了。

大家在看

  • 数据结构-线性表
  • 【C语言习题】46.交换奇偶位
  • Linux笔记(虚拟机网络网段,相关指令,NFS网络文件系统) 518
  • Leetcode每日一题 20240721 1186.删除一次得到子数组最大和 204
  • C语言:数组-学习笔记(万字笔记)——翻新版 238

最新文章

  • java环境变量配置以及“‘javac‘ 不是内部或外部命令”问题的解决方法(2024年6月姆级最新)
  • 完整指南:远程管理 Linux 服务器的 Xshell6 和 Xftp6 使用方法(Xshell无法启动:要继续使用此程序........,的解决方法)
  • JZ11旋转数组的最小数字
2024
06月 2篇
05月 6篇
04月 16篇
03月 15篇
01月 1篇
2023年299篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尘觉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

PHP网站源码塘坑推广网站坪地模板网站建设双龙网站建设设计西乡推广网站丹竹头SEO按天计费南联推广网站荷坳百搜标王龙岗关键词排名盐田标王福田如何制作网站南联网站建设设计坑梓网络广告推广永湖网站优化推广观澜网站制作设计龙岗SEO按效果付费松岗关键词按天计费宝安外贸网站制作布吉优秀网站设计大鹏百度标王松岗百搜标王盐田百度关键词包年推广永湖SEO按效果付费坪地seo排名大鹏设计公司网站荷坳网页设计布吉阿里店铺托管龙华网站搜索优化龙华企业网站制作同乐网站优化排名东莞标王歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化