node初体验
1、node环境
node 是一个服务端JavaScript解析器,node中this指向global,而在浏览器中this指向window
所以underscore中一上来就定义了一 root;
var root = typeof self == 'object' && self.self === self
&& self ||typeof global == 'object' && global.global ===
global && global || this;
2、V8引擎
node 是基于Google V8 JavaScript引擎,而且对他又进行了再次封装,所以速度和性能很好
而且提供了一些好用的api,比如events事件,fs文件系统的操作。http、https模块等
3、三大特点:单线程、事件驱动、非阻塞I/O
单线程:
只当遇到需要加载数据库、读取磁盘等请求时,会将其放入队列中执行,
待下一轮事件循环的时候在判断能否执行他的回调函数
事件驱动:
通过监听事件的状态变化做出相应的动作。
当发出一个请求的时候,如果这个请求需要等待,那就会被放入队列中,
如果有别的请求发出,并且无需等待则立刻做出处理,之后,再调用该请求的回调。
非阻塞I/O:
程序执行的时候会进行很多的I/O操作,而且很费时间,同时I/O 操作阻塞代码的执行,降低程序的效率,
而非阻塞I/O,使得程序执行过程中,在执行I/O的同时 ,能够继续执行其他代码,所以性能上得到了很大的提升。
4、差异
node相对于浏览器而言是没有window对象的
也没有浏览器安全级别的限制
也不具备dom bom 只能运行ecmascript