Node.js 基础入门
Node.js 基础入门
简介
Node.js 是一个基于 Google V8 引擎的、跨平台的 JavaScript 运行环境
特点
异步 I/O
单线程
跨平台
异步 I/O
当 Node.js 执行 I/O 操作时,会在响应返回时再恢复操作,而不是阻塞线程并浪费 CPU 循环等待
代码编写顺序和执行顺序无关
单线程
Node.js 保持了 JavaScript 在浏览器中单线程的特点
优点:不用处处在意状态同步问题,不会发生死锁没有线程上下文切换带来的性能开销
缺点:无法利用多核 CPU 错误会引起整个应用的退出,健壮性不足大量计算会占用 CPU,导致无法继续执行
跨平台
兼容 Windows 和 Linux 平台,主要得益于在操作系统与 Node 上层模块系统之间构建了一层平台架构
模块化机制 -
模块化:根据功能或业务将一个大程序拆分成互相依赖的小文件,再用简单的方式拼接起来
无模块化问题
所有 script 标签必须保证顺序正确,否则会依赖报错
全局变量存在命名冲突,占用内存无法被回收
IIFE/namespace 会导致代码可读性低等诸多问题
CommonJS VS EMS
CommonJS 模块输出的是一个值的拷贝;EMS 模块输出的是值的引用
CommonJS 模块是运行时加载;EMS 模块是编译时输出(提前加载)
包管理机制 -- NPM
npm -v 可查看 npm 版本号
常用命令
npm init -- 初始化,自动生成 package.json
npm config -- 获取配置项
npm run -- 运行
npm install -- 安装
npm uninstall -- 卸载
npm update -- 更新
npm info -- 查看包的信息
npm publish -- 发行
异步编程
Callback
读取 package.json 中 main 字段对应的文件内容
Promise
Promise 是一个具有四个状态的有效状态机,其中三个核心状态为 Pending(挂起)、Fulfilled(完成)、Rejected(拒绝),以及还有一个未开始状态。
await
await 函数使用 try catch 捕获异常
Event
发布订阅模式,Node.js 内置 events 模块
版权声明: 本文为 InfoQ 作者【bo】的原创文章。
原文链接:【http://xie.infoq.cn/article/3c8b5074ef48ef9dd47d1fe1a】。文章转载请联系作者。
评论