10、
js中window是全局变量
nodejs中global是全局变量
11、
Node.js 中你不可能在最外层定义变量,因为所有用户代码都是属于当前模块的,而模块本身不是最外层上下文。
永远使用 var 定义变量以避免引入全局变量,因为全局变量会污染 命名空间,提高代码的耦合风险。
12、
__filename 输出的当前正在执行的脚本的文件名。输出的是绝对路径
__dirname 表示当前执行脚本所在的目录。
setTimeout 和 clearTimeout跟js类似,延迟处理
setInterval 和clearInterval跟js类似,循环定时处理
console.log 类似于C的printf语句
process 是一个全局变量,即 global 对象的属性。用于描述当前Node.js 进程状态的对象,提供了一个与操作系统的简单接口
//16.1.11.3.js
console.log(__filename);
console.log(__dirname);
var t = setTimeout(function() {
console.log('setTimeout 延迟')
}, 2000);
clearTimeout(t);
console.log("hello");
console.error("error!");
console.warn("warn!");
console.trace(); //输出程序调用栈
//全局变量process的操作系统接口
process.on('exit', function(code) {
//以下代码永远不会执行
setTimeout(function() {
console.log('该段代码永远不会执行');
}, 0);
console.log("退出码为: " + code);
});
console.log("程序执行结束");
console.log(process.title);
Process 属性
Process 提供了很多有用的属性,便于我们更好的控制系统的交互:
序号. | 属性 & 描述 |
---|---|
1 |
stdout 标准输出流。 |
2 |
stderr 标准错误流。 |
3 |
stdin 标准输入流。 |
4 |
argv argv 属性返回一个数组,由命令行执行脚本时的各个参数组成。它的第一个成员总是node,第二个成员是脚本文件名,其余成员是脚本文件的参数。 |
5 |
execPath 返回执行当前脚本的 Node 二进制文件的绝对路径。 |
6 |
execArgv 返回一个数组,成员是命令行下执行脚本时,在Node可执行文件与脚本文件之间的命令行参数。 |
7 |
env 返回一个对象,成员为当前 shell 的环境变量 |
8 |
exitCode 进程退出时的代码,如果进程优通过 process.exit() 退出,不需要指定退出码。 |
9 |
version Node 的版本,比如v0.10.18。 |
10 |
versions 一个属性,包含了 node 的版本和依赖. |
11 |
config 一个包含用来编译当前 node 执行文件的 javascript 配置选项的对象。它与运行 ./configure 脚本生成的 "config.gypi" 文件相同。 |
12 |
pid 当前进程的进程号。 |
13 |
title 进程名,默认值为"node",可以自定义该值。 |
14 |
arch 当前 CPU 的架构:'arm'、'ia32' 或者 'x64'。 |
15 |
platform 运行程序所在的平台系统 'darwin', 'freebsd', 'linux', 'sunos' 或 'win32' |
16 |
mainModule require.main 的备选方法。不同点,如果主模块在运行时改变,require.main可能会继续返回老的模块。可以认为,这两者引用了同一个模块。 |