【JavaScript学习笔记】什么是NodeJs?

在较为系统的学习了javascript之后开始接触各类JavaScript库和框架,为了找到实习工作也开始关注各类招聘网站上各企业对于前端开发人员的技能要求,逐渐发现越来越多的企业开始要求前端开发人员掌握“NodeJs”。于是为了算是顺应市场的需求开始学习NodeJs,前前后后花了近两周的时间浏览官网上的文档以及各大技术社区的博客,但是可能是基础不够牢固,花了很多时间似乎还没有彻底搞清楚NodeJs到底是什么东西。

官网上关于NodeJs的描述是这样的”Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。 至少我在看到这句话时非常迷茫。利用小学的缩句知识可以知道:NodeJs就是一个运行环境,对于运行环境,在js中我们直接想到的就是浏览器,那么Node到底算是个什么东西,是一个新的JavaScript框架吗?还是一门新的前端语言吗?带着这样的疑问我又在各大社区网站活跃了近一周,现将自己的理解记录下来,以便铭记。(本文只讨论NodeJs到底是什么的问题,不讨论其底层的一些运行机制或者属性)


需要的说明的是以下理解仅仅是本人自己的想法与思考总结,并不保证准确性与严谨性,请见谅。


首先,NodeJs是一个运行环境,而不是一门语言,也不是一个Javascript框架,它仅仅是一个运行环境。

对于理解NodeJs到底是什么这个问题,首先需要明白的是动态网站与网页的区别,动态网站与静态网页的区别相信大多数人心中都有一定的概念。运行在客户端的程序、网页、插件、组件,属于静态网页,例如:html,javascript等等运行在服务器端的程序、网页、组件,属于动态网页,例如:JSP,ASP,PHP等,它们会随不同客户、不同时间,返回不同的网页。

在NodeJs出现之前前端开发人员负责的工作主要是页面内容的展示与简单的交互,NodeJs出现之后前端开发人员利用也可以编写动态网站,是不是听起来特别神奇和诱人。

如同php等语言搭配服务器环境可以完成动态网站制作一样,在nodejs环境中也可以开发“动态网站”,而开发语言用的不是php或者jsp,而是前端人员更为熟悉的javascript。

大多数后台语言能完成的事情,用JavaScript语言在nodejs环境下也可以完成,例如读取服务器端的文件,发起http请求等操作。至此才真正明白了NodeJs确实是一个运行环境而不是一门语言。


以上总结为:NodeJs是一个运行环境,在NodeJs环境中可以用JavaScript语言进行动态网站的开发,包括与服务器进行交互、发起http请求等等操作。


nodejs的开发是所有前端开发人员都值得为之高兴的事情,使得前端开发人员可以直接利用自己现有的知识进行整个网站(注意不是网页)的开发,向着全栈前进;


很多时候在接触新事物时首先第一步需要明白这个新事物到底是什么,再去理解其底层的一些运用会更加高效清晰。再则,官方的定义与概念有时候确实很难理解,记忆起来也非常拗口,但是它确实是为了严谨性才这样定义的,很多时候我们在理解某一个概念时第一次并不觉得其中某些词语的重要性,但之后有了较深的理解后回过头来看概念才发现,其实很多东西在一开始就告诉了我们,只是那时因为我们功力不够所以错过了。所以“读书百遍其义自见”大概就是这么来的吧。

你可能感兴趣的:(【JavaScript学习笔记】什么是NodeJs?)