本文目的:本人学习JavaScript以来一直或多或少总是会接触到一些“莫名奇妙”冒出来的东西让我一头雾水,比如js不是运行在浏览器中的脚本吗,为什么可以写服务器端程序?为什么还会有什么打包工具之类的,为什么我在想用一个框架的时候不是直接把代码复制过来而是要去下载这么多的乱七八糟的东西,什么node,什么npm命令!什么express,什么global,local之类的,我的脑子全乱了,所以今天把在学习JavaScript中必定会遇到的内容做一个小小的总结,旨在给刚刚学习js的你解除一些疑惑。
一:什么是v8引擎
JavaScript一种解释性脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分。
V8引擎就是JavaScript运行的解释器,他是Google开发的,作为chrome浏览器的js执行解释器,因为性能十分优秀,所以后来慢慢的也就被广泛的使用,不仅仅局限在chrome中解释js了,下文的nodejs就是用到了v8引擎。
二:什么是Node.js
在2009年的欧洲JavaScript大会上, 年轻程序员RyanDahl展示了他正在从事的 一个项目,该项目是一个集成了GoogleV8 JavaScript引擎、事件循环和底层I/O应用编程接口-----------(Application Programming Interface, API)的平台。 与其他服务器端的JavaScript平台不同,Dahl的平台中所有1/0原语l都是事件驱动的,除此以外别无他途。借助JavaScript的影响力和易用性,Dahl的项目使得编写基于事件驱动的服务器端应用程序的任务由难变易, 因此,该项目受到了热烈欢迎, 并且它的发展、普及和被接受程度都是前所未有的。这个项目被命名为------Node.js, 但时至今日它的简称Node更为开发者们所熟知。Node为构建高度并发的软件提供了一个纯事件驱动的、非阻塞的基础架构,这就是Nodejs。(一个提供了一些编程接口,运行在Google V8 JavaScript引擎上的平台),所以JavaScript可以直接运行在nodejs上(自带了v8引擎)。
三:什么是NPM
除了使用Node的语言特性及核心函数,我们还需要使用一些已经编写好的优秀的第三方库, 这也是为什么大多数编程平台都具有一个系统用来下载、 安装和管理第三方模块的原因。 在Node 中这个系统被称为Node包管理器(NodePackage Manager, NPM)。NPM是三位一体的系统一一第三方包库、管理计算机中安装的包的机制以及定义包依赖关系的标准。NPM提供了一种公共注册服务,它包含了程序员在NPM中发布的所有包, NPM还提供了一个命令行工具用来下载、安装和管理这些包。你还可以使用标准化的包描述符来指定自己的模块或者应用程序需要依赖的第三方包。
你并不需要了解NPM也一样可以使用Node,但是一旦涉及使用第三方包,那么了解 一下NPM就十分必要。 因为Node仅仅提供了底层API,所以如果想不必事事躬亲就能实现一个复杂的应用程序,那么在应用程序中包含第三方包几乎不可或缺。正如将看到的那样,NPM允许你不必无一遗漏地安装所有包就可以下载和应用包,这个特性使我们可以尽情地来做些试验。在早期,NPM和Node是要分别独立安装的,但是从0.6.0版开始,NPM就己经包含在Node的安装包中。