Node.js的使用与模块化(CommomJS)

目录

node的使用

模块化 

概念:

优点:

 分类

前端模块化规范

AMD规范

CMD规范

CommonJS规范

实例

order.js

index.js


JavaScript作为一门编程语言的要素,包括基本类型和变量、函数和对象等,都与其他编程语言无异。

JavaScript的最大缺陷在于它是专门为了在浏览器中运行而设计的,在设计之初没有考虑到和I/O设备交互的情形。

【I/O设备】

I-Input-输入/O-Output-输出

I/O设备-输入输出设备-是数据处理系统的关键外部设备之一,可以和计算机本体进行交互使用。

如:键盘、写字板、麦克风、音响、显示器

node的作用:让JavaScript能够直接在本地机器上运行并利用所有资源,并对JavaScript做了大量拓展,包括模块系统、文件系统、流处理以及多进程支持。

node的使用

实例

//使用js文件,去执行NodeJS代码(掌握):
// 1.在代码文件夹中,【新建js文件】(不要新建成html),里面写任意js代码。
const hoppy = '运动'
console.log('我的爱好'+ hoppy);

// 2.来到代码文件夹,在上面的路径处输入【cmd】,就弹出了小黑窗。

// 3.在小黑窗中输入【node 文件名】,执行代码。

输出结果:

模块化 

作用:解决大前端时代前端代码日益膨胀的问题

概念:

  • 将一个较大的程序拆分成n个互相依赖的小文件
  • 这些小文件可以通过特点的语法组合
  • 该过程称为模块化

优点:

  • 避免命名冲突
  • 分离,按需加载
  • 提高可维护性

 分类

  • 自定义模块/自己写的模块
  • 内置模块(核心模块)
  • 第三方模块

前端模块化规范

AMD规范

//AMD(Asynchronous Module Definition):异步模块定义规范。
//专门用于浏览器端,模块的加载是异步的。
//AMD主要通过require.js实现模块化。(通过define方法,将代码定义成模块;通过require方法,实现代码的模块加载。)
//目前用的很少,很少,了解即可。
//在require.js中,使用require.js提供的函数require()来应用一个模块
require(['模块文件的路径(不带.js后缀)',function(){   //模块加载成功之后的回调函数
}])

CMD规范

//CMD(Common Module Definition):公共模块定义规范。
//CMD是另一种JS模块化方案,它与AMD很类似。
//不同点在于:AMD推崇依赖前置、提前执行;CMD推崇依赖就近,延迟执行。
//CMD主要通过sea.js实现此规范。
//目前看到的很少,很少,了解即可。
//使用define函数,传入的一般是一个函数,这个函数接受三个参数,分别是require、exports、module。
define(function(require,exports,module){
    const a = require( 'a ')//同步导入
    const b = require.async( 'b ' ,function(b){
    console.log(b);
        })//异步导入
})

CommonJS规范

// Node.js是CommonJS的主要实践者,Node.js中内置CommonJS。
//接下来我们学习的模块化语法,就是Common.js。
//[概述]
//每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。
//在服务器端,模块的加载是运行时同步加载的。在浏览器端,模块需要提前编译打包处理。
//[特点]
//所有的代码都运行在模块作用域,不会污染全局作用域。
//模块可以多次加载,但是只会在第一次加载是运行一次,然后运行结果就被缓存了,以后再加载,就直接读取缓存结果。
//模块加载的顺序,按照其在代码中出现的顺序。
//[语法]
//暴露模块
// module exports = valuel 
// exports xxx = value
//引入模块
// require( xxx)
//在第三方模块中, xxx为模块名。在自定义模块中,xxx为模块文件路径。

实例

order.js

const name = 'leo'
const sex = 'male'
const age = 22
 
function read(message) {
    console.log('我的' + message);
}
 
// 暴露模块
// module.exports = 暴露的数据(一般暴露一个对象)
module.exports = {
    // 暴露对象出去
    name,
    sex,
    age,
    read
}

index.js


//导入模块
// const 变量 = require('路径')
const order = require('./order')

console.log(order);

console.log(order.age);
console.log(order.name);
console.log(order.sex);

order.read('个人信息')

cmd输出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值