前端 JS 经典:CommonJs 规范

简介: 前端 JS 经典:CommonJs 规范

1. Node 环境介绍

CommonJs 简称 CMJ,CMJ 的模块标准,必须在 node 的环境中才支持。在浏览器中用,是不行的。

查看电脑是否安装 node,通过打开终端,运行 node -v 查看是否返回 node 版本。返回则已安装。

CMJ 在 node 中怎么使用呢,其实和 JS 在浏览器环境下用法一样,变量的定义判断循环数组的使用等都一样。与 JS 在浏览器中用法不同的是,API 不一样,在 node 中使用 Node API,在 JS 中使用的是 Web Api(DOM 和 BOM)。其中 Node API 很强大的,是开发服务器用的。

node 环境有什么用呢,就是使我们的 JS 代码,脱离浏览器直接运行,怎么做呢,打开终端,运行 node xxx.js 命令即可。

2. CMJ 中的模块特点

在 node 环境中,所有的 js 文件均是模块。那什么叫模块呢,就是独立的功能单元。浏览器可以同时引用多个 js,但在 node 里同时只能运行一个 js,这个 js 被称为入口文件。其他拥有独立功能的 js 文件,可以通过导出后,被入口 JS 文件导入。比如将 index.js 作为入口文件,math.js 作为专门提供计算函数的模块。所有模块中的全局变量,函数,均不会发生环境污染。

3. 模块的导出

一个模块提供的函数,怎么给其他模块使用,那就需要把模块提供的函数导出,那怎么导出呢,在 node 中,通过 module.exports 导出。

// math.js
function add(a, b) {
  return a + b;
}
module.exports = {
  add,
};

4. 模块的导入

当一个模块,需要用到其他模块的函数或变量时,就需要导入这些函数和变量,那怎么导入呢,在 node 中,通过 require(模块路径),模块路径必须以 ./ ../ 开头。其中 ./ 表示当前目录,../ 表示上级目录。那 require 做了什么事呢,首先会找到模块路径的 js,然后把这个 js 从头到尾的运行一遍,运行完后,module.exports 的值就作为这个模块的导出,而 require 函数的返回结果就是 module.exports 的值。拿到这个值后,我们就可以用到别的模块的函数或变量了。

模块是有缓存的,第一次运行模块后,导出结果,会被缓存,之后在使用该模块,直接使用缓存结果。

// index.js
const math = require("./math.js");
 
math.add(1, 2); // 3


目录
相关文章
|
11月前
|
JavaScript 前端开发 API
|
11月前
|
前端开发 JavaScript 数据可视化
58K star!这个让网页动起来的JS库,前端工程师直呼真香!
Anime.js 是一款轻量级但功能强大的JavaScript动画引擎,它能够以最简单的方式为网页元素添加令人惊艳的动效。这个项目在GitHub上已经获得58,000+星标,被广泛应用于电商页面、数据可视化、游戏开发等场景。
415 8
|
11月前
|
JavaScript 前端开发 容器
|
12月前
|
资源调度 JavaScript 前端开发
前端开发必备!Node.js 18.x LTS保姆级安装教程(附国内镜像源配置)
本文详细介绍了Node.js的安装与配置流程,涵盖环境准备、版本选择(推荐LTS版v18.x)、安装步骤(路径设置、组件选择)、环境验证(命令测试、镜像加速)及常见问题解决方法。同时推荐开发工具链,如VS Code、Yarn等,并提供常用全局包安装指南,帮助开发者快速搭建高效稳定的JavaScript开发环境。内容基于官方正版软件,确保合规性与安全性。
11838 23
|
11月前
|
JavaScript 前端开发
|
11月前
|
存储 JavaScript 前端开发
|
11月前
|
移动开发 JavaScript 前端开发
|
11月前
|
存储 JavaScript 前端开发
|
11月前
|
JavaScript 前端开发
|
11月前
|
JavaScript 前端开发

热门文章

最新文章

  • 1
    前端如何存储数据:Cookie、LocalStorage 与 SessionStorage 全面解析
    877
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    402
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    305
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    274
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    399
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    584
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    614
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    189
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    533
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    345