Node.Js学习

JavaScript:

1. 是一种脚本编程语言,是一种解释型语言而不是编译型语言。

2. 需要运行在浏览器之中,实现一些动态交互(DOM文档型操作,BOM浏览器型操作)。

JavaScript = ECMAScript + DOM + BOM,但Node里只有ECMAScript没有DOM和BOM。

 

Node是什么:jQuery.js和Angular.js等都是对原本JS的一种封装(作为JS的库或框架),但Node.JS不是对原本JS的封装。NodeJs不是独立的语言,Node是一个JavaScript的运行环境,提供给JS除浏览器外的另外一种运行环境,可以让JS不用在浏览器运行也不用在浏览器解析而是用Node解析,Node实际上是JS的运行平台可以让JS运行在任何地方

Node.js可以在命令行直接用 node xxx.js执行,不需要像别的把要JS放入html文件里再到浏览器里跑。

Node的特点:1.轻内核,这个平台本身不提供 任何方法,所以使用不了DOM和BOM的提供的对象,如document.getElementById()、alert()。所有的事情 和操作都需要自己动手,没有浏览器 那种封装好的操作直接指挥他去做。 

2.事件驱动。   3.单线程。   4.非阻塞IO。

Node提供了多个内置的模块,官方常用的几种模块,一种是文件类操作模块,一种是网络类操作模块,一种是工具类模块,还有第三方模块可以用c++写,所以所有的功能都能实现。

写Node代码一般都是不断的载入别人的包,通过别人的包提供的api实现功能,用require()这个Node定义的全局函数来载入。

 

NodeJs相关信息:

Node.js官网地址:nodejs.org,在Docs里选择版本Globals里可查看所有Node定义的全局函数。

在命令行用node -v来查看node版本确认是否安装成功。

用visual studio code来阅读Node.js代码。

 

NodeJs的核心Module模块化和Require引用:

var v = function(array){return '一共有'+array.length+'个';}等于定义了一个v方法,array是传入参数。

用module把某个文件模块化,如module.exports=a;等于对引用自己的文件提供一个变量去接收自己。如module.exports.xxx = aaa;这个aaa可以是变量也可以是方法,引用自己的文件可以用一个变量接收,然后用接收的变量点变量或方法获得引用文件的变量或方法。

引用系统模块require('xxx')是直接引用,引用自定义模块是require('./xxx'),用require引用某个文件,如 var v = require('./utils.js');等于把utils.js文件里对外exports的东西赋值给v,然后直接使用v.xxx或v.xxx()就可以使用utils.js对外提供的变量或者方法了。

 

NodeJs的事件模块:

事件流程:

//1.引入事件模块

var events = require('events');

//2..创建EventEmitter对象

var myEmitter = new events.EventEmitter();

//3.注册事件

myEmitter.on('someEvent',function(msg){  console.log(msg);  });

4.触发事件

myEmitter.emit('someEvent','传递此参数到注册事件的回调函数中,如上面的msg中');

如果想要异步事件使用setImmediate()在注册事件的on里面。

 

NodeJs语法:

1.箭头函数:等号左边是函数名字,等号右边是参数,箭头右边是函数体(如果返回值只有一个不需要些return和中括号,如果函数体是直接return x那箭头右边就只有一个x。如果返回值有多个则需要 =>{return ......})。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值