浏览器中有window对象 this默认就是指的window,浏览器无法直接访问global对象 所以需要window来代理
在node中可以直接访问global
全局变量
1 | // 下面的a现在就是全局变量 |
node的特点:每个文件都是一个模块,模块外面包了一个匿名函数(module,exports,require,__dirname, ____filename)
1 | console.log(this === global); // false |
想要打印global可以直接打印 global , 也可以如下 默认是global调用的
1 | (function () { |
全局属性
global中的属性叫全局属性 、 module,exports,require,__dirname,__filename 叫全局对象
1 | // 打印global中的属性 |
全局属性:
- process 进程 可以开启很多个线程
- Buffer 缓存区 读取文件 内存中的数据都是二进制的 默认代表二进制数据 Buffer是16进制的
- clearInterval setInterval 宏任务
- clearTimeout setTimeout 宏任务
- clearImmediate setImmediate(浏览器中IE下才有) 宏任务
process
1)process.platform // 平台 mac => darwin window => win32
2)process.argv 代表用户传递的参数 默认有2个参数,前2个参数没有意义
- 一般执行node 可以直接右键Run Code(需要安装插件)这样执行相当于node+文件名 执行
- 通过命令+文件名+参数 就可以用argv传参 参数取值process.argv.slice(2) 从第二个参数开始取
commander:命令行的管家 帮你提供–help ,必须先安装 在命令行 执行该文件 node XXX [option]
1 | const program = require('commander'); |
3)chdir cwd()( current working directory 当前工作目录)]
1 | const path = require('path'); |
4)env 环境变量
1 | console.log(process.env); // 可以根据环境变量的不同执行不同的结果 |
5)nextTick node中的微任务 Vue.nextTick
1 | // 微任务 |