1、说说你对nodeJS的理解?优缺点?应用场景?
nodeJS是一个服务器端的,非阻塞式I/o的、事件驱动的JavaScript运行环境。
非阻塞I/O,是指NodeJS采用非阻塞I/O机制,在做I/O操作的时候不会造成任何的阻塞,当完成之后,以时间的形式通知执行操作。 事件驱动,当进来一个新的请求的时候,请求将会被压入一个事件队列中,然后通过循环来检测队列中的事件状态变化,如果检测到有状态变化的事件,那么就执行该事件对应的处理代码,一般都是回调函数。
优点:
处理高并发场景性能更佳;
适合I/O密集型应用;
缺点:
不支持CPU密集型应用;
只支持单核CPU,不能充分利用CPU;
可靠性低,一旦代码某个环节奔溃,整个系统都会奔溃
【应用场景】:
善于I/O,不善于计算。因为Node.JS最擅长的就是任务调度,如果业务有很多的CPU计算,实际上也相当于这个计算阻塞了这个单线程,就不太合适Node开发,但是也不是没有解决方案,只是说不太适合。 当应用程序需要处理大量并发的I/O,而在向客户端发出响应之前,应用程序内部并不需要进行非常复杂的处理的时候,Node.js非常合适。 【具体场景】:
1、用户表单收集系统,后台管理系统,实时交互系统,考试系统,联网软件,高并发量的web应用程序;
2、基于web、canvas等多人联网游戏;
3、基于web的多人实时聊天客户端、聊天室、图文直播;
4、单页面浏览器应用程序
2、说说NodeJS有哪些全局对象
在浏览器Javascript中,通常window是全局对象,而NodeJS中的全局对象是globa
1、真正的全局对象:
Class:Beffer;可以处理二进制以及非Unicode编码的数据
process;进程对象,提供有关当前进程的信息和控制
console;打印
最常用的输入内容的方式:console.log 清空控制台 console.clear 打印函数的调用栈:console.trace clearInterval、clearTimeout、setInterval、se