一、Javascript的引擎

浏览器一般有两个引擎,一个是Html引擎,一个是脚本引擎。

JavaScript是一种脚本语言,最初用于浏览器的动态显示,方便操作页面数据和内容。但实际上,它也可以在浏览器外运行(如服务器端),就像C、C++、Java语言一样,因此,它是一种开发语言。

我们知道,Java的运行环境是Jvm,而JavaScript的运行环境是JavaScript引擎。

但JavaScript没有标准的运行环境(或称为引擎),我们所熟知的浏览器都有各自的脚本引擎,如:Mozilla的引擎叫TraceMonkey;Safari的引擎叫Squirrelfish Extreme,Google Chrome的引擎目前是V8(可能是最新版本,但我也不清楚,因为2009年Node.js诞生时,就用的是V8引擎)

总结:JavaScript运行在脚本引擎下。

二、Node.js是什么

后来由于Google Chrome V8引擎的出现,大大提高了JavaScript的运行效率(几乎与本地代码有一样的执行效率),使人们看到了脚本语言的强大。基于这个原因,CommonJs诞生,并试图制定一套JavaScript规范,使其可以应用在普通应用程序。CommonJs的终极目标是制定一套像C++类库一样的规范,使各类应用可以像调用C++标准库一样,调用JavaScript标准库。

而Node.js就是实现了部分CommonJs规范的一个服务器端应用(非浏览器应用)。

因此很重要的一个概念就是,Node.js是一个应用,而不是一个JavaScript运行环境。它像浏览器一样,可以解析执行JavaScript脚本,但不是运行在浏览器环境下,而是运行在操作系统环境下。或者说它和浏览器是一个并列的性质,都是操作系统下的一个应用。

Node.js的一个目标是成为像Apache一样的应用服务器,并要比它的性能更高。

总结:Node.js是一个Web应用服务器。

三、Node.js与Javascript的关系

Node.js与浏览器端的Javascript(尤其是像现在的Vue.js等前端开发工具),没有一毛钱的关系。

总结:Node.js与浏览器端的JavaScript没有任何关系。

以上很多概念来自于《Node.js开发指南》一书,但不是原文摘抄,是以自己的理解和便于初学者理解做的解释。本文主要用于理解Node.js是做什么的,作为自己的一个学习记录,如有不同见解,欢迎大家留言。

如何理解Node.js和JavaScript的关系的更多相关文章

  1. node.js和JavaScript的关系

    node.js是一个基于 Chrome V8 引擎的 JavaScript 运行时环境. 一.类比JavaScript和java JavaScript java V8 JVM node.js JRE ...

  2. 深入理解Node.js中的垃圾回收和内存泄漏的捕获

    深入理解Node.js中的垃圾回收和内存泄漏的捕获 文章来自:http://wwsun.github.io/posts/understanding-nodejs-gc.html Jan 5, 2016 ...

  3. 了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发)

    了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发) Guillermo Rauch 编   赵静 译 ISBN 978-7-121-21769-2 2 ...

  4. 理解Node.js的事件轮询

    前言 总括 : 原文地址:理解Node.js的事件轮询 Node小应用:Node-sample 智者阅读群书,亦阅历人生 正文 Node.js的两个基本概念 Node.js的第一个基本概念就是I/O操 ...

  5. 方便大家学习的Node.js教程(一):理解Node.js

    理解Node.js 为了理解Node.js是如何工作的,首先你需要理解一些使得Javascript适用于服务器端开发的关键特性.Javascript是一门简单而又灵活的语言,这种灵活性让它能够经受住时 ...

  6. 深入理解 Node.js 进程与线程

    原文链接: https://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651557398&idx=1&sn=1fb991da ...

  7. Node.js: What is the best "full stack web framework" (with scaffolding, MVC, ORM, etc.) based on Node.js / server-side JavaScript? - Quora

    Node.js: What is the best "full stack web framework" (with scaffolding, MVC, ORM, etc.) ba ...

  8. 深入理解node.js异步编程:基础篇

    ###[本文是基础内容,大神请绕道,才疏学浅,难免纰漏,请各位轻喷] ##1. 概述 目前开源社区最火热的技术当属Node.js莫属了,作为使用Javascript为主要开发语言的服务器端编程技术和平 ...

  9. 深入理解Node.js基于事件驱动的回调

    回调和异步调用的关系 首先明确一点,回调并非是异步调用,回调是一种解决异步函数执行结果的处理方法.在异步调用,如果我们希望将执行的结果返回并且处理时,可以通过回调的方法解决.为了能够更好的区分回调和异 ...

随机推荐

  1. 暑假撸系统6- Thymeleaf ajax交互!

    本来用Thymeleaf也没想着深度使用ajax,就是用也是非常传统的ajax方式提交然后js控制修改下变量.闲来无事的时候看Thymeleaf的教程发现一哥们的实现方式,以及实现思路,堪称惊奇,先说 ...

  2. 命令行与C++

    windows和Linux都接受使用命令行进行程序的运行,例如在windows下使用命令行命令.\notepad可以打开记事本,使用特定的命令行参数,如.\notepad 1.txt可以打开1.txt ...

  3. [自动化]基于kolla部署的openstack自动化巡检生成xlsx报告

    自动化巡检介绍 此巡检项目在kolla-ansible部署的openstack环境上开发,利用ansible-playbook编排的功能,对巡检的任务进行编排和数据处理.主要巡检的对象有IaaS平台和 ...

  4. Spark学习记录

    SpringStrongGuo Hadoop与Spark Hadoop主要解决,海量数据的存储和海量数据的分析计算. Spark主要解决海量数据的分析计算. Spark运行模式 1)Local:运行在 ...

  5. 网络损伤测试,助力5G新基建

  6. 【C# 集合】HashTable .net core 中的Hashtable的实现原理

    上一篇我介绍了Hash函数 这篇我来说一下Hash函数在 HashTable中的应用. HashTable的特性: 1.装载因子:.net core 0.72 ,java 0.75 2.冲突解决方案: ...

  7. 1、cpu架构和工作原理

    cpu架构和工作原理 计算机有5大基本组成部分,运算器,控制器,存储器,输入和输出.运算器和控制器封装到一起,加上寄存器组和cpu内部总线构成中央处理器(CPU).cpu的根本任务,就是执行指令,对计 ...

  8. python语法:注释

    Python语法:注释  python语言中的注释是来帮助程序员理解并读懂代码内容的文字.当然,注释不仅在python语言中是这个作用,在其他语言中也几乎一样. python注释的生成方式  所有演示 ...

  9. c++ stringstream 实现字符串与int之间的转换

    #include <iostream> #include <sstream> using namespace std; int main() { //string转int st ...

  10. SQL:查询时给表起别名

    Q 有两个表student.score,查询前一个表的id.name列,后一个表的total列,查询结果通过两个表的id连接起来 要求 使用别名st和sc替换表名进行查询 A SELECT st.id ...