在浏览器javescript中,通常window是全局对象,而在node.js中的全局对象是global,所有的全局对象除了global本身之外,都是global对象的属性。

  在node.js中同样的我们可以直接访问global的属性。

  global最根本的作用是作为全部变量的宿主。若要成为全局变量需要满足一下条件:

    (1): 在最外层定义的变量;

     (2): 全局对象的属性;

    (3): 隐式定义的变量(未定义直接赋值的变量)

  _filename:

    表示当前正在执行的脚本的文件名。它将输出文件所在的位置的绝对路径,且和命令行参数所指定的文件名不一定相同。如果在模块中,返回的值是模块文件的路径。

  _dirname:

    表示当前执行脚本所在的目录;

  setTimeout(cb, ms):

    该全局函数在指定的毫秒(ms)树后执行指定的函数(cd),而且该函数只执行一次指定的函数,返回一个代表定时器的句柄值。

  clearTimeout(t):

    该全局函数用于停止一个之前通过setTimeout()创建的定时器,参数t就是指这个定时器。

  setInterval(cd,ms):

    该全局函数在指定的毫秒数后执行指定的函数(cb),返回一个代表定时器的句柄值。 可以使用clearInterval(t)来清除。

  console:

    console用于提供控制台标准的输出,它是由internet Explorer的Jscript引擎提供的调试工具,后来逐渐成为浏览器的实施标准。 node.js用它向标准输出流(stdout)或者错误输出流(stderr)输出字符。

    console对象的方法:

        (1):console.log():用于向标准输出流打印字符并以换行符结束;

        (2):console.info():作用是返回信息行消息;

        (3):console.error():输出错误消息。控制台在出现错误时会显示是红色的叉子;

        (4):console.warn(): 输出警告信息。控制台出现黄色的惊叹号。

        (5):console.dir(): 用来对一个对象进行检查(inspect),并以易于阅读和打印的格式显示;

        (6):console.tiem(): 输出时间,表示计开始;

        (7):console.timeEnd(): 结束时间,表示计时结束;

        (8):console.trace(): 当前执行的代码在堆栈中的调用路径,这个测试函数运行很有帮助,只要给想测试的函数里面加入console.trace就行了;

        (9):console.assert(): 用于判断某个表达式或变量是否为真,接收两个参数,第一个参数是表达式,第二个参数是字符串。只有当第一个参数为false,才会输出第二个参数,否则不会有任何结果;

  process:

    该对象描述当前node.js进程状态的对象,提供了一个与操作系统的简单接口。

    process属性:

      (1):stdout: 标准输出流;

      (2):stderr: 标准错误流;

      (3):Stdin: 标准输入流;

      (4):argv:该属性返回一个数组,由命名行执行脚本时的各个参数组成。它的第一个成员总是node,第二个成员是脚本文件名,其余成员是脚本文件的参数;

      (5):execPath: 返回执行当前脚本的Node 二进制文件的绝对路径;

      (6):execArgv: 返回一个数组,成员是命令行下执行脚本时,在node可执行文件与脚本文件之间的命令行参数;

      (7):env: 返回一个对象,成员为当前shell的换将变量;

      (8):exitCode: 进程退出时的代码,如果进程优通过 process.exit()退出,不需要指定退出码;

      (9):version: node版本号;

      (10):versions: 一个属性,包含了node的版本和依赖;

      (11):config: 一个包含用来编译当前node执行文件的javascript配置选项的对象;

      (12):pid: 当前进程的进程号;

      (13):title: 进程名字,默认是node;

      (14):arch: 当前cpu的架构:'arm'、'ia32'或者'x64';

      (15):platform: 运行程序所在的平台系统'drawin'、'freebsd'、'linux'、'sunos'或'win32';

      (16):mainModule: require main的备选方法。 不同点,如果主模块在运行时改变,require main 可能会继续返回老的模块;

    

    process方法:

      (1)abort(): 这将导致node触发abort事件,会让node退出并生成一个核心文件;

      (2)chdir(): 改变当前工作进程的目录,如果操作失败抛出异常;

      (3)cwd(): 返回当前进程的工作目录;

      (4)exit(code): 使用指定的code结束进程。如果忽略,将会使用 code0;

      (5)getgid(): 获取进程的群组表示;获取到的是群组的数字id,而不是名字;

      (6)setgid(id): 设置进程的群组标识。

      (7)getuid(): 获取进程的用户标识。这是数字的用户id,不是用户名;

      (8)setuid(): 设置进程的用户标识。 接收数字ID或字符串名字,如果指定了群组名,会阻值等待解析为数字ID;

      (9)getgroups(): 返回进程的群组id数组。 Posix系统不一定有,但是node.js肯定有;

      (10)setgroups(groups): 设置进程的群组ID. 这是授权操作,所有要有root权限;

      (11)initgroups(user, extra_group): 读取/etc/group,并初始化群组访问列表,使用成员所在群组。这是授权操也要root权限;

      (12)kill(): 发送信号给进程;

      (13)memoryUsage(): 返回一个对象,描述了node进程所有的内存状况,单位为字节;

      (14)nextTick(callback): 一旦当前事件循环结束,调用回调函数;

      (15)umask(): 设置或读取进程文件的掩码;子进程从父进程继承掩码。如果mask参数有效,返回旧的掩码。否则,返回当前掩码;

      (16)uptime(): 返回node已经运行的秒数;

      (17)hrtime(): 返回当前进程的高分辨时间,形式为[sconds,nanoseconds]数组。它是相对于过去的任意时间。该值与日期无关,因此不受时钟漂移的影响。主要用途是可以通过精确的时间间隔,来衡量程序的性能;

    process对象最常用的成员方法:

      (1): exit 当进程准备退出时触发。

      (2): beforeExit 当node清空事件循环,并且没有其他安排是触发这份事件,通常来说,当没有进程安排时node退出,但是beforeExit的监听器可以异步调用,这样node就会继续执行;

      (3): uncaughtException 当一个异常冒泡回到事件循环,触发这个事件。如果给异常添加了监听器,默认的操作(打印堆栈跟踪嘻嘻并退出,)就不会发生。

      (4): signal事件: 当进程几首到信息时就触发。

      例如:

      process.on('exit',function(){ console.log('退出码为:',code)})

      退出状态码:

        (1): Uncaught: Fatal Exception 有未捕获异常,并且没有被域或uncaughtException处理函数处理;

        (2): Unused:  保留;

        (3): Internal JavaScript Parse Error:  javaScript的源码启动node进程引起解析错误。

        (4): Internal JavaScript Evaluation Failure:   javaScript的源码启动node进程,评估时返回函数失败;

        (5): Fatal Error:  v8里致命的不可恢复的错误,通常会打印到stderr;

        (6): Non-function Internal Exception Handler: 未捕获异常,内部异常处理函数不知为何设置为 on-function,并且不能被调用;

        (7): Internal Exception Handler Run-Time Failure: 未捕获的异常,并且异常处理函数处理时自己抛出了异常。例如process.on('uncaughtException')或domain.on('error')抛出了异常。

        (8): Invalid Argument: 可能是给了未知的参数,或者给的参数没有值。

        (9): Internal JavaScript Run-Time Failure: javaScript的源码启动node进程时抛出错误;

        (10): Invalid Debug Argument:设置了参数--debug-brk,但是选择了错误接口;

        (11): Signal Exits: 如果node接收到致命信号,比如: sigkill 或 sighup,那么退出代码就是128加信号代码。

转载于:https://www.cnblogs.com/mufc/p/10082683.html

node.js(四 --- 全局对象)相关推荐

  1. Node.js Buffers缓存对象

    Node.js Buffers缓存对象 纯粹的 Javascript 对 Unicode 很友好,但是操作二进制数据就不怎么在行了.处理 TCP 数据流或者文件时,必须要操作二进制数据流. node ...

  2. 摸石头——NOde.js(四)

    一.一个错误引发的摸索 上回我们在获取 request 对象的 headers 属性的 'user-agent'  属性时,我使用了 request.headers.user-agent 这样的语法, ...

  3. node.js将buffer对象转换为json对象

    d 是buffer对象 let jsstr = JSON.stringify(d);let jsondata = JSON.parse(jsstr);let buf = new Buffer(json ...

  4. node.js字符串转对象querystring.parse方法使用说明

    方法说明: 将字符串转成对象.说白了其实就是把url上带的参数串转成数组对象.(看例子就知道咯) 语法: 复制代码代码如下: querystring.parse(str, [sep], [eq], [ ...

  5. windows下node.js的全局模块配置完成后无法全局调用的解决方法

    无效原因: 配置的路径不是以全局模块的宏命令解析工具所在目录为基准,所以导致全局调用时操作系统无法调用这个全局模块的宏命令解析工具 正确的配置方法 一.新建一个系统变量存储全局模块的宏命令的根目录 二 ...

  6. JS中全局对象的属性和方法

    代码: for(var propValue in this){ document.write(propValue + "<br/>"); } 结果: IE9: stat ...

  7. 如何使用Node.js解析JSON?

    我应该如何使用Node.js解析JSON? 是否有一些模块可以安全地验证和解析JSON? #1楼 我想提一下,全局JSON对象还有其他选择. JSON.parse和JSON.stringify都是同步 ...

  8. linux 页面内容输出,Node.js 一个简单的页面输出

    最近决定重拾node.js,用它来做一个合并JS文件的东西.由于忘得差不多了,先看能不能输出一个页面来再说.以下是我的一些笔记,省得以后又忘净光-- 安装过程就不说了.如果成功是能使用node的命令. ...

  9. Node.js全局对象

    Node.js的全局对象是具有全局性的,它们可在所有的模块中应用.我们并不需要在应用中引用这些对象,而可以直接使用它们. 一.__filename __filename 表示正在执行的代码的文件名.这 ...

  10. Node.js 全局对象

    Node.js 全局对象 在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 gl ...

最新文章

  1. ZABBIX利用自带模板监控mysql数据库
  2. 要注意页面中加载的第三方脚本
  3. 来自微博html5怎么设置,来自微博的面试题解决方案
  4. 了解计算机中的信息编码教案,五年级下册信息技术《奇妙的编码》教学设计
  5. Android 应用启动速度优化
  6. webservice 完整视频教程
  7. 反三角函数的积分公式
  8. Altium Designer 20查找指定元器件
  9. 荣耀magicbook15C语言,荣耀MagicBook 15 2021版评测:轻薄机身+强悍性能 专为高效率办公而生...
  10. pytorch指定版本更新
  11. 【Swagger】 SrpingBoot整合Swagger
  12. Java 从键盘输入一个字符串,统计某个字符的个数
  13. linux连接宏杉存储,Linux客户端挂载NFS共享报“rpc.statd is not running”
  14. IDEA JetBrains 推出 Mono 编程字体真牛逼,更适合程序开发人员!
  15. 蓝桥杯练习系统 基础练习 全部习题 题目及AC代码(包括VIP试题)C++
  16. java swt 打印_SWT(JFace) 打印功能
  17. javascript常用实例的实现与封装
  18. 鲸探发布点评:9月19日发售《中国大飞机C919》数字藏品
  19. 两台服务器之间数据库同步
  20. ORB特征提取详解 BRUEF rBRIEF steered BRIEF

热门文章

  1. 【工具】kindle 怎么用微信读书
  2. 出现Cannot find module 'xxx' 错误
  3. 微信小程序/小游戏运行环境小结
  4. 如何防止超级节点“同谋”作恶?
  5. IT一族需警惕11钟“电脑病”
  6. 服务器网卡不显示了,重装系统后网络适配器怎么不见了?没有网络适配器解决方法...
  7. 学术界AV1编码优化技术的进展
  8. python处理can协议文件_二、如何解决:python:Can't reopen .pyc file
  9. 单射、满射、双射(一一映射)
  10. 数组取出使用某一个entiti