如何理解Node.js和JavaScript的关系
一、Javascript的引擎
浏览器一般有两个引擎,一个是Html引擎,一个是脚本引擎。
JavaScript是一种脚本语言,最初用于浏览器的动态显示,方便操作页面数据和内容。但实际上,它也可以在浏览器外运行(如服务器端),就像C、C++、Java语言一样,因此,它是一种开发语言。
我们知道,Java的运行环境是Jvm,而JavaScript的运行环境是JavaScript引擎。
【如何理解Node.js和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是做什么的,作为自己的一个学习记录,如有不同见解,欢迎大家留言。
推荐阅读
- ShuangzhaoDB如何在金融交易系统中控制风险
- C语言|C语言实现——字符串逆序
- Java|面试官问(说说你对ZooKeeper集群与Leader选举的理解())
- 当MySQL执行XA事务时遭遇崩溃,且看华为云如何保障数据一致性
- 教你如何使用|教你如何使用 Python 向手机发送通知!
- 笔记|初启Ubunntu系统,如何放大界面
- python|Python 学生信息管理系统------文章中源码100%真实有效-----如何将类、初始化属性、模块、循环判断、静态方法等一系列知识点结合起来做一个项目
- DL|深入理解PyTorch中LSTM的输入和输出(从input输入到Linear输出)
- 笔记|使用Vue时候报错,怎么查看错误位置,如何解决,方法,有哪些
- pancakeswap|如何防止uniswap和pancakeswap夹子机器人