Node.js是运行在服务器端JS环境
1.JS和Node.js的区别
(1)JS运行在浏览器,有多种解释器,存在代码兼容性问题;Node.js运行在服务器,只有谷歌v8引擎一种环境,不存在代码兼容性问题。
(2)两者都有共同的自定义对象和内置对象,不同的宿主对象
(3)作用不同,JS用于开发浏览器端的用户交互效果,Node.js用于后端开发,例如数据库访问、调用其他服务器...
2.网址
官网:Node.js
中文:Node.js 中文网
3.运行Node.js
(1)脚本模式
node 文件路径 回车
(2)交互模式
node 回车 进入交互模式
两次ctrl+c 或者 一次 ctrl+d 退出交互模式
4.特点
是单线程运行逻辑
二、全局对象可以在任意作用域下使用的对象
1.global (全局的全球的)
用来检测一个变量或者函数是否为全局的
交互模式下,属于是在全局作用域下 global.变量或函数 Node.js脚本文件下,不属于全局作用域下,变量和函数都是局部,解决了全局污染 |
JS下,全局global名字发生了变化;叫做window
JS脚本文件下,属于全全局作用域,存在全局污染 |
练习:编写脚本文件01_global.js,创建函数,使用global检测是否为全局的 | 练习:编写文件02_window.js和02.html,把js文件嵌入到html中,检测js文件中 |
var a=1 function fn(){ return 2 } //使用global检测是否为全局 //a和fn不能使用global访问,当前文件不是在全局作用域下 console.log(global.a) console.log(global.fn()) | var a=1 function fn(){ return 2 } //检测是否为全局 console.log(window.a) //1 console.log(window.fn()) //2 |
2.console (控制台)
console.log(1) //打印日志
console.info(2) //打印消息
console.warn(3) //打印警告
console.error(4) //打印错误
console.time() //开始计时
console.timeEnd() //结束计时
注意事项:开始计时和结束计时的参数要保持一致
计时用法 | 练习:查看while和do-while循环100000次 |
//开始计时 console.time('tao') for(var i=1;i<=100000;i++){ } //结束计时 console.timeEnd('tao') | console.time('while') var j=1 while(j<=100000){ j++ } console.timeEnd('while') |
console.time('do-while') var k=1 do{ k++ }while(k<=100000) console.timeEnd('do-while') |
3.process (步骤,进程)
进程对象,计算机上启动的软件都会产生相应的进程,每个进程都会占用一定的资源
process.arch 查看到CPU架构
process.platform 查看到当前的 *** 作系统
process.pid 查看当前进程的编号
process.kill() 结束指定编号的进程
4.Buffer(缓冲区,缓存)
是内存中的一块区域,用于临时保存数据
var buf=Buffer.alloc(6,'abc中国') //创建Buffer,分配一块大小为6个字节的数据空间,每个英文字符占1个字符,汉字占3个字节;逗号前面是空间大小(单位是字节),逗号后面是存储的数据;若空间大小不够,数据将不能完全存储 console.log(buf) console.log(buf.toString()) //将Buffer格式的数据转为字符串 |
模块表示一个独立的功能体,Nodejs下每一个文件就是一个模块 (便于维护 )
require() 用于引入一个模块
module.exports 当前模块要暴露的对象,默认是一个空对象,如果想让外部使用哪一个,就添加到暴露的对象
07_yan.js | 07_tou.js |
console.log('这是眼睛模块') //局部变量 var a=1 //局部函数 function fn(){ return 2 } //暴露的对象:如果想让外部使用哪些,需要暴露出去才可以 //往暴露对象中添加内容 module.exports={ myA:a, //把函数fn暴露出去,让外部调用 myFn:fn } | //引入同一级目录下的07_yan.js //同一级目录 ./ //引入成功后,得到的是什么——模块暴露的对象 var obj=require('./07_yan.js') console.log(obj) //默认暴露的是空对象 //使用:用暴露的名字 console.log(obj.myA,obj.myFn()) |
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)