Node.js 入门(2):全局对象
2022/10/6 4:23:52
本文主要是介绍Node.js 入门(2):全局对象,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在学习 Javascript 之初,会接触一个概念:JS 由三部分组成,DOM + BOM + ECMAScript。其中前两者是宿主环境,也就是浏览器所提供的能力。后者才是 JS 语言本身的标准。
在上篇文章《Node.js入门(1):安装和简介》中,提到了 Node.js 本质是 JS 的一个运行时,所以学习 Node.js 时,除了我们已经掌握的 JS 基础功底,还要了解 Node.js 宿主环境提供的一些能力。
windows 和 global
全局对象是 Javascript 中永远存在的对象,它是一个存在于全局作用域的对象。
但是在不同的宿主环境中,有不同的实现。
window
对象是浏览器中的全局对象。任何全局变量或者全局函数都可以通过 window
的属性来访问。比如 window.console.log
,window.setTimeout
,由于它们本身是全局变量,可以直接访问,比如 console.log
,setTimeout
。
在 Node.js 中,全局对象叫作 global
。
Node 中的全局对象
首先来看下 Node.js 提供了哪些全局对象。
打开终端,输入 node
,进入 REPL 环境,打印 global
对象:
打印的都是一些以前在浏览器中见过的方法:
-
clearInterval
-
clearTimeout
-
setInterval
-
setTimeout
-
clearImmediate
-
setImmediate
-
queueMicrotask:创建一个微任务
-
performance:获取性能相关的指标信息
除了打印出来的这些,像以前在 JS 中常用的 Object 对象,Math 对象,Date 对象等等,在 Node.js 中这些都可用。
Node.js 中还有一些它独有的全局对象,比如:
-
Buffer:用来处理二进制数据
-
process:表示当前的 nodejs 进程
CommonJS 规范
早期的 JavsScript 是没有模块化规范的,大都是使用社区的规范,比如 AMD,CMD,是用在浏览器环境的中模块化规范,直到后来 ES6 发布了语言标准的 ES Module 模块化规范。
而在 Node.js 中,所采用的是 CommonJS 模块化规范,它定义了 如何创建一个模块,如何导出模块,如何导入模块 :
-
定义模块:一个 js 文件就是一个模块
-
导出:统一使用 module.exports 导出
-
导入:使用 require 方法导入一个模块
所以,除了挂载在 global 对象下的全局对象,还有一些特殊的、只能在模块中使用的全局对象对象或方法:
-
require:导入模块
-
module:模块定义
-
exports:是 module.exports 的别名,即 module.exports === exports
-
__dirname:获取当前文件的绝对路径
-
__filename:获取当前文件完整路径和文件名称
这些方法并没有挂载到 global 对象上,但依然属于全局对象,可以说,它们是和 global 同级别的存在。
小结
本文简单介绍了 Node.js 中的常用的全局对象,有和浏览器平台一致的,也有自己独有的,比如 Buffer 和 process。
除此之外,由于 Node.js 采用了 CommonJS 模块化规范,还有一些特殊的全局对象,只能应用在模块( JS 文件)中,比如 require
、module
等。这个下一节会讲到。
这篇关于Node.js 入门(2):全局对象的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16Vue3资料:新手入门必读教程
- 2024-11-16Vue3资料:新手入门全面指南
- 2024-11-16Vue资料:新手入门完全指南
- 2024-11-16Vue项目实战:新手入门指南
- 2024-11-16React Hooks之useEffect案例详解
- 2024-11-16useRef案例详解:React中的useRef使用教程
- 2024-11-16React Hooks之useState案例详解
- 2024-11-16Vue入门指南:从零开始搭建第一个Vue项目
- 2024-11-16Vue3学习:新手入门教程与实践指南
- 2024-11-16Vue3学习:从入门到初级实战教程