JS与Node.js:一场深度解析

发表时间: 2017-09-26 09:03

在当今互联网编程语言层出不穷的出现新技术的时候,让我们程序员要学习的新知识也非常之多,然而,各种语言或者插件之间的对比区别就会被人总结出来!下面就来总结下js和node.js之间的区别。

1.node.js是平台,JavaScript是编程语言;

2.javascript是客户端编程语言,需要浏览器的javascript解释器进行解释执行;

3.node.js是一个基于Chrome JavaScript运行时建立的平台,它是对Google V8引擎进行了封装的运行环境;

4.node.js就是把浏览器的解释器封装起来作为服务器运行平台,用类似javascript的结构语法进行编程,在node.js上运行。

JavaScript:

ECMAScript(语言基础,如:语法、数据类型结构以及一些内置对象)

DOM(一些操作页面元素的方法)

BOM(一些操作浏览器的方法)

上面是JavaScript的组成部分

Nodejs:

ECMAScript(语言基础,如:语法、数据类型结构以及一些内置对象)

os(操作系统)

file(文件系统)

net(网络系统)

database(数据库)

分析:很容易看出,前端和后端的js相同点就是,他们的语言基础都是ECMAScript,只是他们所扩展的东西不同,前端需要操作页面元素,于是扩展了DOM,也需要操作浏览器,于是就扩展了BOM。而服务端的js则也是基于ECMAScript扩展出了服务端所需要的一些API,稍微了解后台的童鞋肯定知道,后台语音有操作系统的能力,于是扩展os,需要有操作文件的能力,于是扩展出file文件系统、需要操作网络,于是扩展出net网络系统,需要操作数据,于是要扩展出database的能力。

Node.js优点:

1、采用事件驱动、异步编程,为网络服务而设计。其实Javascript的匿名函数和闭包特性非常适合事件驱动、异步编程。而且JavaScript也简单易学,很多前端设计人员可以很快上手做后端设计。

2、Node.js非阻塞模式的IO处理给Node.js带来在相对低系统资源耗用下的高性能与出众的负载能力,非常适合用作依赖其它IO资源的中间层服务。

3、Node.js轻量高效,可以认为是数据密集型分布式部署环境下的实时应用系统的完美解决方案。Node非常适合如下情况:在响应客户端之前,您预计可能有很高的流量,但所需的服务器端逻辑和处理不一定很多。

Node.js缺点:

1、可靠性低

2、单进程,单线程,只支持单核CPU,不能充分的利用多核CPU服务器。一旦这个进程崩掉,那么整个web服务就崩掉了。