【什么是 Nodejs ?】
Node.js 是一个基于 Chrome V8 引擎的 Javascript 运行环境
Node.js 不是库,是一个运行环境,或者说是一个 JS 语言解释器。(Node.js 不是一门新的编程语言,也不是一个 JavaScript 框架,它是一套 JavaScript 运行环境,用来支持 JavaScript 代码的执行。用编程术语来讲,Node.js 是一个 JavaScript 运行时(Runtime)。)
Node.js 最初的定位是提升 Ryan 自己的日常工作效率,也就是用来写服务器代码的,但是后来没有想到的是 Node.js 在前端领域却大放异彩。
JavaScript 诞生于 1995 年,几乎是和互联网同时出现;Node.js 诞生于 2009 年,比 JavaScript 晚了 15 年左右。
在 Node.js 之前,JavaScript 只能运行在浏览器中,作为网页脚本使用,为网页添加一些特效,或者和服务器进行通信。有了 Node.js 以后,JavaScript 就可以脱离浏览器,像其它编程语言一样直接在计算机上使用,想干什么就干什么,再也不受浏览器的限制了。
Node.js 的组成
Node.js 运行时主要由 V8 引擎、标准库和本地模块组成,尤其是本地模块的多少,从底层决定了 Node.js 功能的强弱。
Chrome V8 与 Node.js
从某种意义上来说,Node.js 并不是一个从零开始编写的 JavaScript 运行时,它其实也是站在“巨人的肩膀”上进行了一系列的拼凑和封装得到的结果。它的高效离不开一些很牛的第三方程序和类库。比如Chrome V8。
Chrome V8 简称 V8,是由谷歌开源的一个高性能 JavaScript 引擎。该引擎采用 C++ 编写,Google Chrome 浏览器用的就是这个引擎。V8 可以单独运行,也可以嵌入 C++ 应用当中。
和其他的 JavaScript 引擎一样,V8 会编译、执行 JavaScript 代码,并一样会管理内存、垃圾回收等。
就是因为 V8 的高性能以及跨平台等特性,所以它也是 Node.js 的 JavaScript 引擎。
Node.js 一直紧跟 V8 的版本脚步在迭代。
Node.js 与 V8 实际上看起来更像是一对情侣,而不仅仅是 Node.js 一厢情愿地使用 V8 作为自己的底层支持。
在 Chrome V8 的博客中曾经有一篇文章名为《V8 ❤ Node.js》。Node.js 在几年发展中的流行度稳步增长,于是有了 V8 的“姑娘,你成功引起了我的注意”。现在 V8 也有一些工作是为 Node.js 而做的:
- 在 Chrome 开发者工具中可以调试 Node.js;
- 加速 ES6;
- 针对 Node.js vm 模块和 REPL 的一些修复;
- Async / await。
总结
V8 引擎借鉴了 Java 虚拟机和 C++ 编译器的众多技术,它将 JavaScript 代码直接编译成原生机器码,并且使用了缓存机制来提高性能,这使得 JavaScript 的运行速度可以媲美二进制程序。
Node.js 是一个 JavaScript 运行时,它让 JavaScript 脱离了浏览器环境,可以直接在计算机上运行,极大地拓展了 JavaScript 用途。我们应该将 JavaScript 和 Python、Java、Ruby 等其它编程语言同等对待,不能再将它视为一种“小玩意”。
最后我们来汇总一下 JavaScript 和 Node.js 的历史:
- Netscape 浏览器衍生出了 JavaScript 脚本,赋予网页编程能力;
- Chrome 浏览器衍生了 V8 引擎,提高了 JavaScript 性能;
- V8 引擎构建了 Node.js,拓展了 JavaScript 的编程能力;
- Node.js 衍生了 Libuv 库,给网络开发增加了一款优秀的工具。
【什么是 Nodejs ?】相关推荐
- CentOS6安装nodejs
Nodejs是JavaScript的一种运行环境,是一个服务端的JavaScript解释器. NPM是Nodejs的包管理器. Nodejs包含npm,所以安装完nodejs后npm默认也被安装. 安 ...
- 让我们一起认识一下Nodejs
Nodejs Nodejs是一个运行在chrome Javascript运行环境下(俗称GoogleV8引擎)的开发平台,用来方便快捷的创建服务器端网络应用程序.可以把它理解为一个轻量级的JSP或PH ...
- nodejs 各种插件
__dirname:全局变量,存储的是文件所在的文件目录 __filename:全局变量,存储的是文件名 代码:dirname.jsconsole.log(__dirname); 运行node dir ...
- nodejs pm2使用
pm2特点 1.简单方便,部署快. 2.解决nodejs单线程缺点 3.完善的日志 pm2安装及使用 1.安装 npm install -g pm2 2.启动 查看版本 pm2 start app.j ...
- NodeJS+Mongodb+Express做CMS博客系统
楼主正在用业余时间开发中-- ,目前的版本仅支持会员系统,尝鲜一下吧~ hi-blog 一个 nodejs+express+mongodb 的 cms 系统 怎么启动 默认你已经安装了 mongodb ...
- 简述nodejs、npm及其模块在windows下的安装与配置
nodejs的安装 登陆官网http://nodejs.org/,自行安装,不需配置环境变量,安装中自动配置了. 检测是否安装成功,使用cmd输入 node -v 即可查看. npm的安装 如果是最新 ...
- 关于内网linux系统如果安装nodejs,npm,express,mongodb,forever等
内网的linux系统要安装nodejs以及express等系列的框架,因为系统是局域网和互联网是物理隔离的,所以,没法像官网的安装教程那样直接install了,只能手动安装,这里已经我们自己的linu ...
- windows nodejs mysql_windows server 安装 mysql + nondejs连接mysql
下载 安装 下载完后,将 zip 包解压到相应的目录,这里我将解压后的文件夹放在 C:\mysql 下. 接下来需要配置下 MySQL 的配置文件 打开刚刚解压的文件夹 C:\mysql ,在该文件夹 ...
- php渲染nodejs api,如何使用nodejs 服务器读取HTML文件渲染至前端
这次给大家带来如何使用nodejs 服务器读取HTML文件渲染至前端,使用nodejs 服务器读取HTML文件渲染至前端的注意事项有哪些,下面就是实战案例,一起来看一下. 1.分别简单实现三个备用页面 ...
- nodejs ld linux.so,请教大神,如何在独立虚拟主机上配置node.js开发环境?
安装一下NodeJs就好啦. Windows系统很简单,直接下载运行安装包.linux复杂一点. 下面给出linux二进制文件安装方法. 首先到这里下载安装文件https://nodejs.org/z ...
最新文章
- 程序员的自我救赎---13.1:职场招聘与面试心得
- Android:Activity生命周期
- 提高网站首页载入速度的常用方法
- Spring MVC @ModelAttribute 详解
- mysql存储过程套嵌_mysql存储过程套嵌
- 控件列[Coolite]上传文件
- R语言-单一变量分析
- VirtualBox的四种网络接入模式
- 终端启动tomcat报错 command not found 解决方法 (含启动和关闭命令)
- sqlserver导出表结构到excel
- 七月算法机器学习 10 聚类算法与应用
- 几种常见模式识别算法整理和总结【转】
- miniusbpcb封装_USB接口封装及定义大全,不用去翻手册了
- 【数据分析与挖掘实战】金融风控之贷款违约预测详解1(有代码和数据集)
- 克莱斯勒等公司宣布召回缺陷汽车
- thawte,globalsign,alphassl,rapidssl,geotrust,digicert证书品牌的对照
- 淘宝API获取——商品详情信息、DESC信息、主图
- 你有没有过那种明知是对的但却没能去做的事?
- mysql locate用法,LOCATE()函数如何与MySQL WHERE子句一起使用?
- BI和大数据的区别在哪里?
热门文章
- JQuery中append(function(index,html)),appendTo(),after(function(index,html)),clone()方法
- HackPwn:TCL智能洗衣机破解细节分析
- 3.牛顿迭代法求解方程的根
- 控制文件的备份与还原
- 【Linux命令】modprobe命令
- java opencv 去噪,opencv教程-图像去噪与修复
- 中超比赛小观-长沙金德对上海申花(图,视频)_原水_新浪博客
- vue:element ui分页改变pageSize,触发两次回调请求
- bootstrapt学习指南_Bootstrap 教程
- 推荐一个外国的数据结构在线演示网站