详解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日

相关文章

  • nodejs高版本降为低版本的详细解决方案

    下面我就详细讲解“nodejs高版本降为低版本的详细解决方案”的完整攻略,包括以下几个步骤: 1. 确定要求的低版本 首先,需要确定要将Node.js版本降到哪个低版本。建议在Node.js官方文档中,查找要求的低版本Node.js的版本号和下载地址。例如,我们要将Node.js版本降级到v12.18.4,那么可以在官网中找到该版本的下载页面:https:/…

    node js 2023年6月8日
    00
  • 使用js完成节点的增删改复制等的操作

    下面是关于使用JavaScript实现节点的增删改复制等操作的完整攻略。 一、获取DOM元素 首先要获取DOM元素,可以借助于JavaScript的document对象提供的方法进行获取。例如,可以使用document.getElementsByClassName()获取特定类名的元素,或者使用document.getElementById()获取特定id的…

    node js 2023年6月8日
    00
  • 爬虫利器Puppeteer实战

    Puppeteer 实战攻略 Puppeteer 是一个 Node.js 库,它提供了一个高级 API,用于控制 headless Chrome 或 Chromium 浏览器。Puppeteer 通过模拟人类的操作来完成自动化任务,因此可以用于构建各种各样的爬虫。 安装 Puppeteer 安装 Puppeteer 十分简单,只需执行以下命令即可: npm …

    node js 2023年6月8日
    00
  • node+vue前后端分离实现登录时使用图片验证码功能

    一、前言 前后端分离的应用现在越来越普及,如何实现前后端分离并且实现一些常见的功能逐渐成为一个必须要掌握的技能。 其中注册和登录是所有网站必备的功能。而且在现在的互联网环境中,为了防止恶意攻击等一些非法行为,很多站点都会在登录时使用验证码的方式进行验证。 那么,在本篇文章中,我们就来详细讲解一下如何在node和vue的前后端分离项目中实现登录时使用图片验证码…

    node js 2023年6月8日
    00
  • JavaScript手写LRU算法的示例代码

    下面是详细讲解“JavaScript手写LRU算法的示例代码”的完整攻略。 什么是LRU算法? 先来简单介绍一下LRU算法。LRU即Least Recently Used,这是一种常用的缓存淘汰策略。思想就是,如果数据最近被访问过,那么在不久的将来它被访问的几率也更高,所以就可以把最近最少使用的数据淘汰掉。 思路 手写LRU算法的话,可以使用一个Map作为存…

    node js 2023年6月8日
    00
  • Node.js中防止错误导致的进程阻塞的方法

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,广泛应用于开发高并发、高性能和可扩展的网络应用。在 Node.js 中,防止错误导致的进程阻塞是非常重要的,否则可能会导致应用程序奔溃甚至是服务器崩溃。本文将介绍 Node.js 中防止错误导致的进程阻塞的方法。 1. Node.js 中的错误处理机制 Node.js 中…

    node js 2023年6月8日
    00
  • 如何在Node.js中使用async函数的方法详解

    下面是详细讲解“如何在Node.js中使用async函数的方法详解”的完整攻略。 异步编程背景 在Node.js中,JavaScript语言常常被用于编写IO密集型的Web应用程序和本地命令行工具。由于JavaScript是一种单线程的语言,因此异步编程成为了Node.js编程中重要的一个环节。Node.js提供了一系列API,用于处理异步编程模型,比如se…

    node js 2023年6月8日
    00
  • Node中文件断点续传原理和方法总结

    下面是详细讲解“Node中文件断点续传原理和方法总结”的完整攻略。 简介 文件断点续传是指在文件下载或上传过程中,若因网络等原因中断,再次续传时可以从断点处接着传输,而不必重新开始。在Node.js中,我们可以使用HTTP断点续传头来实现文件断点续传。 HTTP断点续传头 HTTP断点续传头是指在HTTP请求头中设置Range和If-Range字段,从而实现…

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