node初探 以及与 浏览器的 差异

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
    原文作者:Cymiran
    原文地址: https://segmentfault.com/a/1190000012392626
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞