写点什么

Node.js 基础入门

作者:bo
  • 2022 年 7 月 18 日
  • 本文字数:941 字

    阅读完需:约 3 分钟

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模块  demo 1 2
//demo1.jsconst prefix = 'hello';const sayHi = (() => { return prefix + ' world'})module.exports = { sayHi,}
//demo2.jsconst sayHi = require('./demo1.js');console.log(sayHi.sayHi()) //hello world

// ES Modules demo 3 4
//demo3.mjsconst prefix = 'hello';export const sayHi = (() => { return prefix + ' world'})
//demo4.mjsimport { sayHi } from './demo3.mjs';console.log(sayHi()) //hello world复制代码
复制代码
  • 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 模块

发布于: 刚刚阅读数: 3
用户头像

bo

关注

还未添加个人签名 2022.07.11 加入

还未添加个人简介

评论

发布
暂无评论
Node.js基础入门_前端_bo_InfoQ写作社区