异步编程
Node.js采用单线程异步非阻塞I/O模型,使得Node.js在处理I/O密集型任务时非常高效。Node.js提供了多种异步编程的解决方案,包括回调函数、Promises、async/await等。
模块
Node.js使用模块来组织代码。每个文件都是一个模块,模块内部声明的变量、函数等都是私有的,外部无法直接访问。但可以通过module.exports对象导出模块中的变量、函数等,供其他模块通过require函数引入和使用。(使用require()
加载模块是同步的,因为如果模块加载失败,程序无法继续执行)node9及以上才支持import语法
函数
Node.js中的函数是执行特定任务的代码块。函数可以接受参数,执行代码,并返回结果。Node.js支持多种函数声明方式,包括:
- 函数声明:使用function关键字声明函数。
- 函数表达式:将函数赋值给变量。
- 箭头函数(ES6中新增):使用=>符号定义更简洁的函数。箭头函数不绑定自己的this,会捕获其所在上下文的this值作为自己的this值。
控制结构
Node.js支持多种控制结构,用于控制代码的执行流程:
- 条件语句:如if...else、switch等,用于根据条件执行不同的代码块。
- 循环语句:如for、while、do...while等,用于重复执行一段代码直到满足特定条件。此外,ES6引入了for...of和for...in循环,分别用于遍历数组(及类数组对象)和对象的属性。
let arr = [6, 5, 4, 3, 2, 1, 0];
for (let i in arr) {
console.log(i);
console.log(arr[i]);
}
for (let value of arr) {
console.log(value);
}
变量
Node.js中提供了三种变量声明方式:
- var:声明的变量会提升(hoisting)到其作用域的顶部,并且可以被重新声明。
- let:声明的变量具有块级作用域,不会提升,且在同一作用域内不能重复声明。
- const:用于声明常量,一旦声明并初始化后,其值就不能被改变。常量也具有块级作用域,且不能在同一作用域内重复声明。
定义一个全局变量
global.$={}
数据类型
Node.js支持多种数据类型,包括:
- 原始类型:如String(字符串)、Number(数字)、Boolean(布尔值)、Null(空值)、Undefined(未定义)、Symbol(ES6中新增,表示唯一的标识符)。
- 引用类型:如Object(对象)、Array(数组)等。在Node.js中,对象可以包含属性和方法,而数组是一种特殊的对象,用于存储一系列有序的值。
Comments NOTHING