详解node和ES6的模块导出与导入

详解node和ES6的模块导出与导入

什么是模块

模块是JS代码的组织单元。一个模块中包含了一些独立的、可重用的代码。模块化提供了更好的代码重用,更好的代码管理,并且可以提供更好的性能。

在早期,JS程序的模块化靠的是IIFE(立即执行函数表达式)模式。但是这种模式需要手动处理模块依赖关系并且容易出错。

现代 JS 应用的模块化通常采用 ES6 的模块功能,它为应用程序提供了一种面向对象的抽象概念。 从长远来看,ES6 模块将成为JS 开发应用程序的标准,并且会逐步代替 CommonJS 和AMD之类的传统模块。

node 中的导入和导出

在 Node 中,可以通过模块导入和导出的方式,对代码进行模块化管理。

模块导出

在 Node 中,可以通过 exports 或 module.exports 将模块内部的东西导出,这些被导出的内容可以被其它模块所访问。下面我们以一个计算圆面积的模块 circle.js 来说明模块导出。

circle.js

exports.area = function (r) {
  return Math.PI * r * r;
};

exports.circumference = function (r) {
  return 2 * Math.PI * r;
};

circle.js 模块中,我们通过 exports 对象将两个函数 areacircumference 导出。

模块导入

在其它模块中,可以通过 require 函数来导入需要的模块。

main.js

const circle = require('./circle.js');
console.log(`半径为 4 的圆的面积是 ${circle.area(4)}`);
console.log(`半径为 4 的圆的周长是 ${circle.circumference(4)}`);

main.js 中,我们使用 require 函数来导入 circle.js 模块。因为 circle.js 中没有对外导出默认的东西,所以我们需要用对象或者变量来接收模块导出的东西。 变量circle 就是 circle.js 中导出的exports 对象。

ES6 中的模块导入与导出

ES6 标准还引入了 modules 的规范。该规范定义了模块如何导入和导出。ES6 中的模块,默认使用严格模式,并且使用 import 导入,使用 export 导出。下面我们就来介绍 ES6 中的模块导入和导出。

模块导出

使用 export 关键字将模块内部的东西导出。下面我们以一个计算矩形面积的模块 rectangle.js 来说明模块导出。

rectangle.js

const PI = 3.14;
export function area (width, height) {
  return width * height;
}

export function circumference(width, height) {
  return 2 *(width + height);
}

export function circleArea(radius) {
  return PI * radius * radius;
}

rectangle.js 模块中,我们使用 export 关键字将三个函数 areacircumferencecircleArea导出。

模块导入

在其它模块中,可以通过 import 关键字来导入需要的模块。下面我们以 main.js 来导入刚刚定义的 rectangle.js 模块。

main.js

import { area, circumference, circleArea } from './rectangle.js';

console.log(`矩形的面积 = ${area(5,5)}`);
console.log(`矩形的周长 = ${circumference(5,5)}`);
console.log(`半径为4的圆的面积 = ${circleArea(4)}`);

main.js 中,我们使用 import 关键字来导入 rectangle.js 模块,因为在 rectangle.js 中使用的是 export function 关键字导出的模块接口,所以我们需要用花括号 {} 来包含需要导入的模块接口。导入的模块接口的名称必须与导出的模块接口的名称一致。相信你对模块导入和导出已经有了一个初步的了解。

总结

本文主要介绍了 Node 和 ES6 中的模块导入和导出。我们首先介绍了 Node 中的模块导入和导出,通过示例讲述了如何在 Node 中使用 exportsrequire 来导入和导出模块。 接着我们介绍了 ES6 中的模块导入和导出,通过示例讲述了如何在 ES6 中使用 importexport关键字来导入和导出模块。希望本文可以帮助你了解模块化的重要性,更好的应用模块化来管理你的代码,提高代码的重用性和运行效率。

示例代码传送门:
* Node示例代码
* ES6示例代码

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解node和ES6的模块导出与导入 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • 树结构之JavaScript

    当我们需要在JavaScript中构建树形结构时,可以使用常见的方法如递归,或者使用专门用于构建树形结构的库,例如d3.js、jstree等库来构建。 在这里我们将讨论使用递归方式来构建树形结构的方法。 1.构建节点对象 首先我们需要构建一个节点对象,用来表示树中的一个节点。该节点应包含以下属性: value: 该节点的值 children: 该节点所属的子…

    node js 2023年6月8日
    00
  • NodeJs安装npm包一直失败的解决方法

    针对Node.js安装npm包一直失败的问题,我们来详细讲解一下解决方法的攻略。 问题描述 在使用Node.js安装npm包时,有时会遇到以下错误提示: npm ERR! Failed to download package …… npm ERR! network request…… 或者 npm ERR! code EINTEGRITY n…

    node js 2023年6月8日
    00
  • node.js express捕获全局异常的三种方法实例分析

    Node.js Express捕获全局异常的三种方法实例分析 在Node.js Express应用开发中,捕获全局异常肯定是一个必要的技能。那么,在Node.js Express中,我们有哪些方法可以捕获全局异常呢?接下来,我们将会详细讲解使用三种不同方法捕获全局异常的实例分析。 方法一:process.on(“uncaughtException”)函数 使…

    node js 2023年6月8日
    00
  • typescript路径别名问题详解与前世今生的故事

    Typescript路径别名问题详解与前世今生的故事 在 Typescript 项目中,我们常常需要引用比较深层级的文件或者是一些公共模块。为了避免编写冗长的相对路径,Typescript 支持使用路径别名来简化路径,本篇文章将详细讲解 Typescript 路径别名以及在实际项目中的应用。 什么是路径别名? 路径别名其实就是对长路径的简称,在 Typesc…

    node js 2023年6月9日
    00
  • nodejs实现用户登录路由功能

    下面是“nodejs实现用户登录路由功能”的完整攻略。 一、前置准备 1.安装 Node.js 和 npm2.安装 Express 和 body-parser3.安装 mongoose 二、路由设计 设计用户登录路由,一般是使用 POST 方法,将用户输入的用户名和密码发送到服务器,服务器进行处理和验证,返回登录结果。 三、代码实现 1.在 app.js 中…

    node js 2023年6月8日
    00
  • Nodejs获取网络数据并生成Excel表格

    标题:Nodejs获取网络数据并生成Excel表格 1. 介绍 Nodejs是一门基于JavaScript语法的运行时环境或平台,它可以帮助我们开发高效、可扩展的网络应用程序。在本文中,我们将会学习如何使用Nodejs来获取网络数据,并将数据生成Excel表格。 2. 安装依赖包 使用Nodejs获取网络数据并生成Excel表格,我们需要安装以下依赖包: r…

    node js 2023年6月8日
    00
  • 浅谈JS之tagNaem和nodeName

    浅谈JS之tagName和nodeName 简介 DOM(文档对象模型)是对HTML和XML文档的编程接口,它将整个文档表示为一棵树形结构。在DOM中,每个节点都是一个对象,每个节点都有自己的特性、方法和事件。 在DOM节点中,元素节点是常用的一种类型,它表示HTML文档中的具体标签内容。每个元素节点都有一个标签名(tagName)和一个节点名(nodeNa…

    node js 2023年6月8日
    00
  • node.js-v6新版安装具体步骤(分享)

    Node.js-v6新版安装具体步骤(分享) 简介 Node.js是一个基于Chrome V8引擎构建的JavaScript运行时,Node.js可以使JavaScript在后台运行,执行I/O操作和网络编程等任务。Node.js可用于开发服务器端应用程序,也可用于编写命令行工具等。 如果你是第一次安装Node.js,或者需要安装新版的Node.js,那么你…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部