Node.js基本介绍---(一)快速入门

148 阅读2分钟

Node.js -基于Chrome V8 引擎的js运行的宿主环境,

    -node.js支持ECMAStript 和 node模块Api
    -npm与cpnm,nrm安装介绍
        -npm是官方推出的包安装管理工具
    -淘宝镜像 ----不需要翻墙,与外网连接,加快包的下载速度
        npm install -g cnpm --registry=https://registry.npm.taobao.org
    -node基础语法:
        在命令窗口打印----先写node(将命令行工具变为类似于浏览器控制台,直接解析运行js代码)
        输出按ECMAStript语法的js(node有ECMAstript模块)
    -node.js全局对象 global(浏览器不支持global,支持globalThis,等价于window )
        -clearInterval: [Function: clearInterval]
        -clearTimeout: [Function: clearTimeout]
        -setInterval: [Function: setInterval]
        -setTimeout: [Function: setTimeout] 
    -(globalThis===global) 我们大多时候使用globalThis,兼容浏览器和node

Node.js一个强大的地方在于:超强的可扩展性。除了内置模块,自定义模块,还可以使用第三方模块安装对Node.js进行扩展。

前面说到模块化的三个问题:私有作用域、依赖关系管理和按需加载

一个模块就是一个js文件,文件外部只能通过文件的exports访问的机制解决了私有作用域问题。那么另外两个问题是如何解决的呢?

对于依赖关系的管理解决方案:npm。是不是很耳熟?没错,就是前端项目中常见的npm。它的作用就是将散落在各处的模块按照依赖关系重新组织起来。但npm的功能绝不仅仅于此,后续我们再详细展开讲。

对于按需加载,Node.js是在初始的时候一次性加载所有模块,对于使用过的模块就缓存起来,下次使用时再直接从缓存中读取,并且呢,由于Node.js运行在服务端,将文件从磁盘读取到内存中的速度是非常快的,因此,这个问题在Node中显得不那么突出。

小结:

1)Node.js中也有模块的概念,并且一个js文件就是一个模块;

2)每一个模块都有自己的作用域,在模块内部建立的全局变量和函数其他模块内无法访问,只有被导出的对象才能被其他模块访问。

3)模块的导出和引入遵循的是common.js模块规范,与前端模块规范是不同的。该规范解决了私有作用域和编码风格不统一问题。

4)模块类型按来源分可分为:内置模块、自定义模块和第三方扩展模块。

扩展知识:

Node.js是前端模块化的基础,webpack的模块化是建立在Node.js基础上的,因此,学webpack就会碰到Node.js,因此这也是为什么我要同时写Node系列和webpack系列的原因。