node.js基础

作者: 耐斯 | 来源:发表于2019-03-05 10:17 被阅读0次

什么是node.js

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境
Node.js 使用了一个事件驱动非阻塞式 I/O的模型,使其轻量又高效。
NodeJS就是一个解析器,node的环境和浏览器的环境不同,是没有BOM和DOM对象的,不过运行在NodeJS中的JS的用途是操作磁盘文件或搭建HTTP服务器,NodeJS相应提供了fs、http等内置对象

Node.js的安装

可以在nodejs.org这里找到对应的系统和版本下载并安装
在安装Node.js时也会相应的安装npm,npm是node的包管理工具,通过npm可以用命令行快速的下载所需要的node模块。

异步操作

Node采用V8引擎处理JavaScript脚本,最大特点就是单线程运行,一次只能运行一个任务。这导致Node大量采用异步操作(asynchronous operation),即任务不是马上执行,而是插在任务队列的尾部,等到前面的任务运行完后再执行。
由于这种特性,某一个任务的后续操作,往往采用回调函数(callback)的形式进行定义。

Node约定,如果某个函数需要回调函数作为参数,则回调函数是最后一个参数。另外,回调函数本身的第一个参数,约定为上一步传入的错误对象。

回调函数的第一个参数是Error对象,第二个参数才是真正的数据参数,因为回调函数主要用于异步操作,当回调函数运行时,前期的操作早结束了,错误的执行栈早就不存在了,传统的错误捕捉机制try…catch对于异步操作行不通,所以只能把错误交给回调函数处理。
Node统一规定,一旦异步操作发生错误,就把错误对象传递到回调函数。

全局对象和全局变量

Node提供以下几个全局对象,它们是所有模块都可以调用的。
global:表示Node所在的全局环境,类似于浏览器的window对象。需要注意的是,如果在浏览器中声明一个全局变量,实际上是声明了一个全局对象的属性,比如var x = 1等同于设置window.x = 1,但是Node不是这样,至少在模块中不是这样(REPL环境的行为与浏览器一致)。在模块文件中,声明var x = 1,该变量不是global对象的属性,global.x等于undefined。这是因为模块的全局变量都是该模块私有的,其他模块无法取到。
process:该对象表示Node所处的当前进程,允许开发者与该进程互动。
console:指向Node内置的console模块,提供命令行环境中的标准输入、标准输出功能。

Node还提供一些全局函数。
setTimeout():用于在指定毫秒之后,运行回调函数。实际的调用间隔,还取决于系统因素。间隔的毫秒数在1毫秒到2,147,483,647毫秒(约24.8天)之间。如果超过这个范围,会被自动改为1毫秒。该方法返回一个整数,代表这个新建定时器的编号。
clearTimeout():用于终止一个setTimeout方法新建的定时器。
setInterval():用于每隔一定毫秒调用回调函数。由于系统因素,可能无法保证每次调用之间正好间隔指定的毫秒数,但只会多于这个间隔,而不会少于它。指定的毫秒数必须是1到2,147,483,647(大约24.8天)之间的整数,如果超过这个范围,会被自动改为1毫秒。该方法返回一个整数,代表这个新建定时器的编号。
clearInterval():终止一个用setInterval方法新建的定时器。
require():用于加载模块。
Buffer():用于操作二进制数据。

Node提供两个全局变量,都以两个下划线开头。
__filename:指向当前运行的脚本文件名。
__dirname:指向当前运行的脚本所在的目录。

除此之外,还有一些对象实际上是模块内部的局部变量,指向的对象根据模块不同而不同,但是所有模块都适用,可以看作是伪全局变量,主要为module, module.exports, exports等。

相关文章

  • Nodejs学习第5天

    Node.js内置基础模块fs, Node.js 提供了基础的文件操作,并同时提供文件的同步和异步操作,如: .....

  • Node.js快刀篇

    Node.js概览 - Node.js大俗话,环境的安装和开发环境布署。 Node.js基础 - 事件机制和事件环...

  • CentOS 7安装Node.js

    基础环境 Node.js版本:8.11.1 系统版本:CentOS 7.4.1708 X64 安装Node.js ...

  • 01-npm基本使用

    Node.js基础知识 npm命令基本使用 概念 什么是NPM(node.js package managemen...

  • React-Native 随笔

    学习基础: js的基础知识, rect.js基础 JSX语法基础 FlexBox布局 安装 安装node.js下载...

  • #Node.js基础

    Node.js基础 ***Node.js 以 JavaScript 作为编程语言的,准确地说应该是 ECMAScr...

  • Node.js 实战_1 Node基础

    Node 基础 ?JavaScript 是编程语言,而 Node.js 是执行环境。 Node.js 是一个基于 ...

  • webpack+sass+vue 入门教程(一)

    一、安装node.js node.js是基础,必须先安装。而且最新版的node.js,已经集成了npm。下载地址n...

  • node.js 基础

    基础知识 初识node.js 认识node.js 诞生 2008年 Ryan Dahl 应用: 知乎,网易,pa...

  • Node.js Request+Cheerio实现一个小爬虫-基

    Node.js Request+Cheerio实现一个小爬虫-基础功能实现1:内容抓取Node.js Reques...

网友评论

    本文标题:node.js基础

    本文链接:https://www.haomeiwen.com/subject/cztnuqtx.html