1、node.js概述
node.js基于谷歌的v8引擎(JS解释器),运行在服务器端的语言,基于JS
2、JS和NodeJS对比
(1)JS运行在浏览器端,存在兼容性问题;nodejs运行在服务器端,不存在兼容性问题
(2)两者都有内置对象、自定义对象、宿主对象(根据执行环境的不同)
(3)Js用于网页中的交互效果,nodejs用于服务器端的操作,例如:创建web服务器、操作数据库。。。
2、全局对象
nodejs下:global
在交互模式下,声明的变量和创建的函数都是全局对象下的,可以使用global来访问,例如:var a=1;global.a
在脚本模式下,文件中声明的变量和创建的函数不是全局对象下的,不能使用global来访问
ja下:window
在浏览器下,文件中声明的变量和创建的函数是全局变量下的,可以用window来访问,例如:var a=1;window.a
(1)console对象
global.console.log()//打印日志
global.console.info()//打印消息
global.console.warn()//打印警告
global.console.error()//打印错误
global.console.time('自定义字符串')//开始计时
global.console.timeEnd('自定义字符串')//结束计时,注:自定义字符串前后要保持一致
(2)process对象
process.arch//查看cpu架构
process.platform//查看系统
process.env//查看环境变量
process.version//查看当前nodejs的版本
process.pid//查看当前的进程编号
process.kill()//杀死某个编号的进程
(3)Buffer
缓冲区:在内存中存储数据的区域,存储网络传输时的资源
创建buffer
var buf=Buffer.alloc(数字,数据) 数字为buffer空间的大小,数据为buffer内存储的内容
var buf=Buffer.alloc(5,'qwert');
console.log(buf);
//转换为普通字符串
console.log(buf.toString());
(4)模块系统
模块是一个预定好的功能体,在nodejs下,每一个文件都是一个模块
在nodejs下分为自定义模块、核心模块(官方模块)、第三方模块
在nodejs下,一个文件就是一个模块,文件中的代码默认是被一个构造函数包含
(function(exports,require,module,__filename,__dirname){
//程序员编写的代码
})
__filename:当前文件的完整路径和文件名称
__dirname:当前文件的完整路径
require:是一个函数,用于引入模块,如:require('./07_2.js)
module:指代当前的模块
module.exports:当前模块到处的对象(公开的内容),可以供其他的模块使用的属性和方法,等价于exports
注意:模块下的变量属于局部变量,只能在模块中使用,不能使用global访问,也不能被其他模块直接使用
模块导入:
以路径开头 | 不以路径开头 | |
文件模块 | require('./***.js'),常用于用户自定义模块,如果后缀名是js,可以省略 | require('url') 常用于引入官方提供的核心模块 |
目录模块 | require('./***),会在当前目录***中寻找package.json文件中的main属性对应的值,如果不存在该文件,则自动寻找index.js | require(目录名称) 要求引入的目录出现在node _modules中,如果找不到,则会象上一级目录查找,直到顶层,常用于第三方模块 |
(5)第三方模块
npm官网:http://www.npmjs.com
(6)核心模块
是nodejs官方提供的模块,可以直接引入,不需要创建
1⃣️查询字符串模块--querystring
查询字符串:向浏览器发送请求,传递数据的一种方式
协议,域名(IP),端口
3、全局函数
parseInt/parseFloat/encodeURI/decodeURI/isNaN/isFinite/eval
(1)一次性定时器
var timer=setTimeout(回调函数,间隔时间)
功能:一次性定时
参数:回调函数,执行时间到了运行的内容;间隔时间
返回值:对象,清除定时器时用clearTimeout(timer)
//一次性定时器
var timer=setTimeout(()=>{
console.log('定时器时间到后执行的内容');
},3000);
//清除一次性定时器
clearTimeout(timer);
(2)周期性定时器
var timer=setInterval(回调函数,间隔时间)
功能:间隔定时
参数:回调函数,每个一段时间执行的内容,间隔时间
返回值:对象,清除定时器时用到,clearInterval(timer)
//周期性定时器
var timer=setInterval(()=>{
console.log('每隔3秒执行一次');
},3000)
//清除定时器
clearInterval(timer);
(3)立即执行定时器
var timer=nextTick(回调函数),在当前事件的结尾执行
setImmediate(回调函数),在下一组事件的开头执行,清除:clearImmediate(timer)
//立即执行定时器
process.nextTick(()=>{
console.log('tick');
});
setImmediate(()=>{
console.log('立即执行');
})