1.Node.js概述
Node.js运行在服务器端的JS解释器
(1)对比JS
JS运行在客户端浏览器,存在多款浏览器,有兼容性问题;Node.js运行在服务器端,只有一种解释器谷歌V8引擎,不存在兼容性问题
两者都有共同的内置(ES)对象,自定义对象,不同的宿主对象
JS用于操作网页,实现用户交互;Node.js用于服务器端开发,例如数据库访问,其它服务器的调用
(2)运行方式
脚本模式
node 拖拽脚本文件 回车
交互模式
node 回车 进入交互模式
两次ctrl+c 退出交互模式
(3)特点
是单线程运行逻辑,适合做I/O操作为主应用,支持数万个并发连接,例如:基于社交网络的大规模WEB应用
不适合做CPU密集型的应用
2.全局对象
(1)global
检测一个变量或者函数是否为全局的
交互模式属于全局作用域,变量和函数都是全局的,可以通过global访问
脚本文件中不属于全局作用域,变量和函数都是局部的
练习:编写脚本文件03_global.js,声明变量和创建函数,通过global查看是否为全局的
JS的全局global叫做window
(2)console对象
console.log(1) //打印日志
console.info(2) //打印消息
console.warn(3) //打印警告
console.error(4) //打印错误
console.time() //开始计时
console.timeEnd() //结束计时
开始计时和结束计时的值要保持一致
练习:使用while、do-while循环100000次的耗时
//while循环
console.time('r');
var a=1;
while(a<=100000){
a++;
}
console.timeEnd('r');
//do-while循环
console.time('s');
var b=1;
do{
b++;
}while(a<=100000)
console.timeEnd('s')
(3)process
进程对象,用来管理当前nodejs这个进程
启动任何一个软件都是代表对应的进程
process.arch 查看当前CPU架构
process.platform 查看操作系统
process.version 查看当前nodejs的版本号
process.pid 查看当前进程的编号
process.kill() 结束指定编号的进程
(4)Buffer
缓冲器、缓冲区,是内存中一块临时存储数据的区域
var buf=Buffer.alloc(5, 'abcde'); //创建buffer,分配空间大小为5个字节,并存储数据,每个汉字占3个字节 buf.toString() //将buffer转为字符串 |
3.模块
每个文件代表一个模块,模块表示一个功能体
require: 是一个函数,用于引入其它的模块,得到对方导出的对象
module:当前模块的对象
module.exports: 当前模块导出的对象,默认是一个空对象,如果要导出哪些内容只需要放入到这个对象