Node的REPL
REPL是Read-Eval-Print Loop的简称 翻译为读取-求值-输出 循环
REPL是一个简单的交互式的编程环境
浏览器的console就可以看做是一个REPL
Node程序输出内容
console.log ---在控制台中输出内容
console.clear ---清空控制台
console.trace ---打印函数的调用栈
Node中提供的常见的全局对象
process对象:process对象提供了Node进程中的信息(比如Node的运行环境、参数信息等)
定时器函数:
①setTimeout(callback, delay[, ...args]: callback在delay毫秒后执行一次
②setInterval(callback, delay[, ...args]): callbak每delay毫秒重复执行一次
③setImmediate(callback, [, ...args]): callback I/O事件后的回调“立即”执行
④process.nextTick(callback[, ...args]): 添加到下一次tick队列中
对应取消定时器的方法:
clearTimeout(timeoutObject);
clearInterval(intervalObject);
clearImmediate(immediateObject);
global对象
global是一个全局对象,前面所提到的process、console、setTimeout等都有被放倒global对象中
global与window的区别
在浏览器中,全局变量都是在window上,比如document、setInterval、setTimeout、alert、console等等
在Node中,我们有一个global属性,并且看起来它里面有很多的其他对象
但是在浏览器中执行的JavaScript代码,如果在顶级范围中通过var定义的一个属性,默认会被添加到window对象上:
var name = 'xiaoming';
console.log(window.name); // 'xiaoming'
但是在node中,我们定义一个变量,它只是当前模块中有一个变量,不会放到全局中:
var name = 'xiaoming';
console.log(global.name); //undefined
Node中特殊全局对象
_dirname:获取当前文件所在的路径(不包括后面的文件名---不打印当前的文件名)
_filename: 获取当前文件所在的路径和文件名称(包括后面的文件名称---会打印当前的文件名)