Node.js 基础
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
特点
- 异步非阻塞的
I/O
(I/O
线程池) (针对文件和数据库的写和读操作) - 特别适用于
I/O
密集型应用 (Java 适合 CPU 密集型) - 事件循环机制
- 单线程 (成也单线程,败也单线程)
- 跨平台
应用场景
Node 搭建的服务器适合于 I/O
密集型,也就是经常请求数据库的,但是 CPU 压力很轻,一个服务员
Java 搭建的服务器适合于 CPU 密集型
函数
- Node 中任何一个模块 (JS 文件) 都被一个看不见的外层函数所包裹
- 这个函数用于支持模块化语法和隐藏服务器内部实现
js
function (exports, require, module, __filename, __dirname) {}
// exports:用于支持 CommonJs 模块化规范的暴露语法
// require:用于支持 CommonJs 模块化规范的引入语法
// module:用于支持 CommonJs 模块化规范的暴露语法
// __filename:当前运行文件的绝对路径 /Users/code/test.js
// __dirname:当前运行文件所在文件夹的绝对路径 /Users/code
// 可以直接在 Node 环境运行一个 js 文件,打印出这个函数
console.log(arguments.callee.toString());
global 对象
浏览器端的 JS 由 BOM (window)、DOM (document) 和 ECMAScript 规范三部分组成
Node 端的 JS 由 ECMAScript 规范和 global 全局变量组成
- Node 中 this 指向一个空对象,直接用 global 指向全局对象
- global 的一些常用属性
- clearImmediate:清空立即执行函数
- clearInterval:清除循环定时器
- clearTimeout:清除延迟定时器
- setImmediate:设置立即执行函数
- setInterval:设置循环定时器
- setTimeout:设置延迟定时器