一、全局对象
- global:全局对象,在所有模块中都可以访问。
案例代码:
global.myVariable = "Hello, World!";
console.log(myVariable); // 输出: Hello, World!
- process:进程对象,用于与当前进程进行交互。
案例代码:
console.log(process.pid); // 输出当前进程的PID(进程ID)
console.log(process.cwd()); // 输出当前工作目录
属性/事件:
exit
当进程准备退出时触发。beforeExi
t 当 node 清空事件循环,并且没有其他安排时触发这个事件。通常来说,当没有进程安排时 node 退出,但是 'beforeExit' 的监听器可以异步调用,这样 node 就会继续执行。uncaughtException
当一个异常冒泡回到事件循环,触发这个事件。如果给异常添加了监视器,默认的操作(打印堆栈跟踪信息并退出)就不会发生。Signal 事件
当进程接收到信号时就触发。信号列表详见标准的 POSIX 信号名,如 SIGINT、SIGUSR1 等。stdout
标准输出流。stderr
标准错误流。stdin
标准输入流。argv
属性返回一个数组,由命令行执行脚本时的各个参数组成。它的第一个成员总是node,第二个成员是脚本文件名,其余成员是脚本文件的参数。execPath
返回执行当前脚本的 Node 二进制文件的绝对路径。execArgv
返回一个数组,成员是命令行下执行脚本时,在Node可执行文件与脚本文件之间的命令行参数。env
返回一个对象,成员为当前 shell 的环境变量exitCode
进程退出时的代码,如果进程优通过 process.exit() 退出,不需要指定退出码。version
Node 的版本,比如v0.10.18。versions
一个属性,包含了 node 的版本和依赖.config
一个包含用来编译当前 node 执行文件的 javascript 配置选项的对象。它与运行 ./configure 脚本生成的 "config.gypi" 文件相同。pid
当前进程的进程号。title
进程名,默认值为"node",可以自定义该值。arch
当前 CPU 的架构:'arm'、'ia32' 或者 'x64'。platform
运行程序所在的平台系统 'darwin', 'freebsd', 'linux', 'sunos' 或 'win32'mainModule
equire.main 的备选方法。不同点,如果主模块在运行时改变,require.main可能会继续返回老的模块。可以认为,这两者引用了同一个模块。
- console:控制台对象,用于在控制台输出信息。
案例代码:
console.log("Hello, World!"); // 输出: Hello, World!
console.error("Error occurred!"); // 输出红色错误信息
方法/属性:
console.log([data][, ...])
向标准输出流打印字符并以换行符结束。该方法接收若干 个参数,如果只有一个参数,则输出这个参数的字符串形式。如果有多个参数,则 以类似于C 语言 printf() 命令的格式输出。console.info([data][, ...])
该命令的作用是返回信息性消息,这个命令与console.log差别并不大,除了在chrome中只会输出文字外,其余的会显示一个蓝色的惊叹号。console.error([data][, ...])
输出错误消息的。控制台在出现错误时会显示是红色的叉子。console.warn([data][, ...])
输出警告消息。控制台出现有黄色的惊叹号。console.dir(obj[, options])
用来对一个对象进行检查(inspect),并以易于阅读和打印的格式显示。console.time(label)
输出时间,表示计时开始。console.timeEnd(label)
结束时间,表示计时结束。console.trace(message[, ...])
当前执行的代码在堆栈中的调用路径,这个测试函数运行很有帮助,只要给想测试的函数里面加入 console.trace 就行了。console.assert(value[, message][, ...])
用于判断某个表达式或变量是否为真,接收两个参数,第一个参数是表达式,第二个参数是字符串。只有当第一个参数为false,才会输出第二个参数,否则不会有任何结果。
- module:当前模块对象,用于访问当前模块的相关信息。
案例代码:
console.log(module.filename); // 输出当前模块的文件路径
console.log(module.exports); // 输出当前模块的导出对象
- require:用于加载模块。
案例代码:
const fs = require('fs'); // 加载Node.js的文件系统模块
const http = require('http'); // 加载Node.js的HTTP模块
- __dirname:当前模块的文件夹路径。
案例代码:
console.log(__dirname); // 输出当前模块的文件夹路径
- __filename:当前模块的文件路径。
案例代码:
console.log(__filename); // 输出当前模块的文件路径
- exports:当前模块的导出对象。
案例代码:
module.exports = {
greeting: "Hello, World!"
};
- setTimeout():在一定延迟后执行一次的定时器函数。
案例代码:
setTimeout(() => {
console.log("Delayed message");
}, 1000); // 1秒后输出 "Delayed message"
- setInterval():每隔一定时间执行一次的定时器函数。
案例代码:
setInterval(() => {
console.log("Repeated message");
}, 1000); // 每隔1秒输出 "Repeated message"
- clearTimeout():用于取消已经通过setTimeout()创建的定时器。
案例代码:
const timerId = setTimeout(() => {
console.log("This message will be canceled");
}, 1000);
clearTimeout(timerId); // 取消定时器,不会输出消息
- clearInterval():用于取消已经通过setInterval()创建的定时器。
案例代码:
const timerId = setInterval(() => {
console.log("This message will be canceled");
}, 1000);
clearInterval(timerId); // 取消定时器,不会输出消息
二、node介绍
Node.js
是一个基于Chrome V8引擎的JavaScript运行环境,可以用于构建高性能的网络应用程序。它采用事件驱动、非阻塞I/O模型,使得程序可以以高效地方式处理并发请求。
Node.js的特点包括:
- 单线程:Node.js采用单线程模型,使用事件循环来处理并发请求。这意味着它可以高效地处理大量的并发请求,而不会因为线程切换而产生开销。
- 非阻塞I/O:Node.js使用非阻塞I/O模型,可以在进行I/O操作时继续处理其他请求,而不需要等待I/O操作完成。这使得Node.js非常适合处理高并发的网络应用程序。
- 异步编程:Node.js采用异步编程模式,可以使用回调函数来处理异步操作的结果。这使得开发者可以编写简洁、可读性强的代码,同时可以更好地利用系统资源。
- 轻量级:Node.js是一个轻量级的运行环境,所需的资源较少,并且可以快速启动。这使得它非常适合部署在云服务器等资源有限的环境中。
- 前后端一体化:Node.js可以用于开发前端和后端的代码,使得前后端可以共享相同的语言和模块。这样可以简化开发流程,并提高开发效率。
Node.js的应用场景包括:
- Web应用程序:Node.js可以用于开发高性能的Web应用程序,如实时聊天应用、实时协作工具等。
- RESTful API服务:Node.js可以用于开发高性能的API服务,提供数据和功能的接口。
- 实时数据应用程序:Node.js可以用于开发实时数据应用程序,如实时数据分析、实时监控等。
- 游戏后台服务器:Node.js可以用于开发游戏后台服务器,处理大量的并发请求。
Node.js是一个功能强大、高性能的JavaScript运行环境,适用于开发各种类型的网络应用程序。它的优势在于高并发处理能力、高效的I/O操作、简洁的异步编程模型,以及与前端一体化等特点。