跳转至

浏览器中,console、setTimeout、var定义的变量等,属于window,window.console.log等同于console.log。

nodejs中,global类似window,但定义变量不会添加到global下,比如var a=''; global.a会是未定义的。

模块module

​ 一个js文件就是一个模块(module),通过console.log(module)可以查看相关信息,global.module是未定义的,module不属于global。

​ 要让cmd.js的内容能被外部js文件(模块)使用,需要在文件中写上

module.exports.名字 = 自己定义的内容(变量名、函数名..);

​ 在另外一个模块,使用require(模块路径)加载模块:

const xx=require(模块);//不用var的原因是防止变量被覆盖导致其他错误。

​ 将整个模块文件只作为一个功能使用:

module.exports = 自己定义的内容(变量名、函数名..);

类内定义函数不需要function关键字

class A{
    myfunc(){}
}

setImmediate,setTimeout,process.nextTick

setImmediate()setTimeout(() => {}, 0)(传入 0 毫秒的超时)、process.nextTick() 有何不同?

process.nextTick() 会始终在 setTimeoutsetImmediate 之前执行。

Node.js 还提供 setImmediate()(相当于使用 setTimeout(() => {}, 0)),通常用于与 Node.js 事件循环配合使用。