Nodejs基础之JavaScript模块化(一),retrofit解析

本文详细介绍了Node.js中的exports和module.exports用于模块内容导出,以及ESModule的import/export关键字。讲解了如何创建自定义模块,导出变量、函数和类,以及exportdefault的用法。
摘要由CSDN通过智能技术生成
  • exportsmodule.exports可以负责对模块中的内容进行导出

  • require 函数可以帮助我们导入其他模块(自定义模块、系统模块、第三方库模块)中的内容

1.2、自定义模块的规定


  1. 我们可以把公共的功能抽离成为一个单独的 js 文件作为一个模块,Node.js规定一个 JavaScript 文件就是一个模块,模块内部定义的变量和函数默认情况下外部无法得到。如果要让外部可以访问模块里面的方法或属性,就必须在模块里面通过exports 或者 module.exports 暴露属性或者方法

  2. 在需要使用这些模块的文件中,通过 require 的方式引入这个模块。这个时候就可以使用模块里面暴露的属性和方法

在这里插入图片描述

注意:

  • require 里面的路径要加 单引号

  • require 里面引入的模块可以跟后缀 .js,也可以不跟后缀 .js

  • 若我们要暴露的是对象(属性),则建议使用 module.exports ;若我们要暴露的是方法,则建议使用exports

在这里插入图片描述

在这里插入图片描述

  • 我们以后的自定义模块都会放在 node_modules 文件夹下,此时引入不需要添加 node_modules 路径也可以引入

在这里插入图片描述

1.3、ES Module


JavaScript没有模块化一直是它的痛点,所以才会产生我们前面学习的社区规范:CommonJS、AMD、CMD等,

所以在ES推出自己的模块化系统时,大家也是兴奋异常。

ES Module和CommonJS的模块化有一些不同之处:

  • 一方面它使用了import和export关键字

  • 另一方面它采用编译期的静态分析,并且也加入了动态引用的方式

ES Module模块采用export和import关键字来实现模块化

  • export负责将模块内的内容导出

  • import负责从其他模块导入内容

1.4、export关键字


export关键字将一个模块中的变量、函数、类等导出

  • export 指令用于导出变量,比如下面的代码

// info.js

export let name = ‘why’

export let age = 18

export let height = 1.88

  • 上面的代码还有另外一种写法

// info.js

let name = ‘why’

let age = 18

let height = 1.88

export{name,age,height}

1.5、导出函数或类


上面我们主要是输出变量,也可以输出函数或者输出类

export function test(content){

console.log(content);

}

export class Person {

constructor(name,age){

this.name = name;

this.age = age

}

run(){

console.log(this.name + ‘在奔跑’);

}

}

  • 上面的代码也可以写成这种形式

function test(content) {

console.log(content);

}

class Person {

constructor(name,age) {

this.name = name;

this.age = age;

}

run() {

console.log(this.name + ‘在奔跑’)

}

}

export {test,Person}

1.6、export default


  • 某些情况下,一个模块中包含某个功能,我们并不希望给这个功能命名,而是让导入者可以自己来命名

  • 这个时候就可以使用 export default

// info.js

export default function() {

console.log(‘default function’)

}

  • 我们来到 main.js 中,这样使用就可以了

  • 这里的 myFunc 是我自己命名的,你可以根据需要命名它对应的名字

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

基础面试题

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

主要内容包括:HTML,CSS,JavaScript,浏览器,性能优化等等

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!**](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

  • 26
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值