nodejs是什么?

Node.js 是一个开源与跨平台的 JavaScript 运行时环境
nodejs是一个js的运行环境,使得js可以脱离浏览器,直接运行在操作系统,开启了js可以同时编写前端和后端应用的历史,使那句js的狂言“能被js重写的一切都会被js重写!”真的成为可能!

nodejs怎么做的?

  • 简单来说就是:拥抱ECMAScript 标准,拥抱js语言,拥抱Google的V8引擎,然在这些的基础上nodejs自己封装了一些库和I/O操作等功能。
  • Node.js 在浏览器外运行 V8 JavaScript 引擎(Google Chrome 的内核),得益于Google的V8引擎,nodejs运行速度极快。
  • js语言本身的异步特性,这使 Node.js 可以在一台服务器上处理数千个并发连接,而无需引入管理线程并发的负担(这可能是重大 bug 的来源)。
  • Node.js 应用程序运行于单个进程中,无需为每个请求创建新的线程。
  • js语言运行在浏览器,所以无法直接操作I/O文件系统, Node.js 在其标准库中提供了一组异步的 I/O 原生功能(用以防止 JavaScript 代码被阻塞),并且 Node.js 中的库通常是使用非阻塞的范式编写的(从而使阻塞行为成为例外而不是规范)。
  • 当 Node.js 执行 I/O 操作时(例如从网络读取、访问数据库或文件系统),Node.js 会在响应返回时恢复操作,而不是阻塞线程并浪费 CPU 循环等待。
  • 支持 ECMAScript 标准,因此不必等待所有用户更新其浏览器,你可以通过更改 Node.js 版本来决定要使用的 ECMAScript 版本,并且还可以通过运行带有标志的 Node.js 来启用特定的实验中的特性。

  • nodejs为什么会火?

    nodejs坐拥天时、地利、人和,站在了巨人的肩膀上同时提升了巨人的高度,是历史发展的必然产物。

  • js的编程人员真的是太多了!只有是编程的没有不会js的(因为js是浏览器的唯一开发语言,而你又不可能不用浏览器!),因为为浏览器编写 JavaScript 的数百万前端开发者现在除了客户端代码之外还可以编写服务器端代码,而无需学习完全不同的语言。

  • js语言本身的随意、随便的特性使得其不论是在面向对象编程领域还是函数编程领域都游刃有余!
  • 渐进式的学习方式!nodejs真的很简单,上手速度极快,学习曲线平稳,尽管企业级开发项目用什么语言所需要的难度和成本到最后几乎是一致的,但是nodejs提供一中渐进式的学习历程,入门容易,用到什么学什么,慢慢增加难度,渐进式的学习方式让越来越 多的开发上船(先骗上船嘛,哈哈哈)。
  • 组件库极多!由于开发人员众多,马太效应增持,库也极多,往往实现一个功能都有现成的组件库,开箱即用,几行代码即可完成一个炫酷的功能。

    nodejs的弊端?

    成了js,败也会是js,js的弊端都会遗传给nodejs。

  • js是随意的语言,随便的就像一个荡妇,仅浮点型的数字、解释性语言、null和undefined和NaN等等等,地狱回调,丧心病狂的闭包等等,众所周知,不多赘述。

  • js实在不适合团队合作开发,随意是有成本的,适合小团队或个人玩耍,人多就坏事,因为无规矩不成方圆,随随便便了,人多了就坏事。

好消息是,web2.0的急速发展,web3.0的即将到来,倒逼js不断升级。
TypeSprit,ES6等等已经成为事实和规范,js的缺点被慢慢修复,js迎来了春天。
未来物联网的天下,js也会是浓重的一笔,绚丽的色彩!

参考连接