js的简单基础:第六章(Node.Js)

一、模块中的变量

__dirname 获取一个模块的绝对路径

__filename 获取一个模块的绝对路径+模块名称

二、模块系统

模块系统下分为三类模块:自定义模块、核心模块、第三方模块

以路径开头不以路径开头
文件模块require(‘./circle.js’)
用于引入自定义模块
目录模块require(‘./02_xin’)
首先会到目录中寻找模块说明文件package.json,再查找文件中main属性对应的文件;如果找不到文件会自动寻找index.js
require(‘04_nan’)
首先会到当前目录下的node_modules目录中寻找要引入的目录模块,如果没有找到会一直往上一级目录下的node_modules目录中寻找;用于引入第三方模块

练习:在03_main.js模块中引入同一级目录下的目录模块03_yu,目录模块中包含文件index.js,在文件中创建一个函数,传递任意3个数字,返回总和;将函数暴露出来;最后再主模块中调用函数。

练习:在04_main.js模块中引入同一级目录下的目录模块04_nan,目录模块中包含文件index.js,在文件中创建一个函数,传递任意1个数字,返回1~任意数字之间所有整数的和;将函数暴露出来,最后再主模块中调用函数。

三、包和NPM

CommonJS:是一种模块化规范,Node.js采用了这种规范,例如require和module.exports都是基础这种规范

包(package):是指第三方模块,都是目录模块的形式

NPM:是Node.js包管理器,用来管理第三方模块,例如:下载安装、升级、卸载、上传… NPM在Node.js安装过程中已经附带安装

​ npm -v 查看NPM版本号

​ www.npmjs.com

NPM命令

npm init -y 初始化生成一个package.json文件,作为项目说明文件,可以记录安装的包

npm install 包名称 下载安装指定的包,会将下载包放入到node_modules目录中,同时会在package.json中记录当前这个包;在package-lock.json中记录所有的包的信息(包括依赖的包)。

​ 练习:使用npm下载安装包express

npm install 自动下载package.json中记录的包

​ npm set registry https://registry.npmmirror.com 设置npm下载的服务器为国内

​ npm get registry 查看下载的服务器

其它npm命令 www.npmjs.cn

四、URL

网址:统一资源定位器,互联网上的任何资源(html、css、图像、声音、视频)都有对应的网址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f7ByOZH1-1680865565411)(assets/1680852406635.png)]

协议(HTTP):规定数据传输的方式
域名(IP):用于在网络环境中找到主机
端口(port):通常会省略,在网络主机上,标识一个进程(应用程序),例如http默认使用80,https默认使用443
资源路径:要请求的服务器端资源
查询参数:客户端向服务器端传递的参数,格式为

​ 参数名=参数值&参数名=参数值

锚点:用于定位到当前网页的指定位置

new URL(网址)   //创建一个URL对象,可以将一个网址转为对象,分离各个部分
searchParams   //获取网址中查询参数部分
get(参数名)     //获取参数名对应的参数值

练习:获取以下URL中查询参数的值,最后打印输出以下格式

https://www.tmooc.cn/course/web.html?cid=2302&cname=nodejs#top

班级编号:WEBxxxx 课程名称:xxxx

var str = 'https://www.tmooc.cn/course/web.html?cid=2302&cname=nodejs#top'
var obj = new URL(str)
// 获取查询参数部分
var qs = obj.searchParams
console.log(qs)
console.log(`班级编号:WEB${qs.get('cid')}  课程名称:${qs.get('cname')}`)

五、定时器

1.一次性定时器

//开启:当间隔时间到了,会调用一次回调函数,单位是毫秒
var timer = setTimeout(回调函数, 间隔时间)
//清除已经开启的定时器
clearTimeout(timer)

2.周期性定时器

// 开启:每个一段时间,调用一次回调函数
var timer = setInterval(回调函数, 间隔时间)
// 清除开启的定时器
clearInterval(timer)

练习:每隔3秒钟打印‘滴滴滴’

3.立即执行定时器

// 开启
var timer = setImmediate(回调函数)
// 清除
clearImmediate(timer)
// 开启后,没有清除的方法
process.nextTick(回调函数)

JS是单线程运行逻辑,所有的程序默认在一个线程执行,出现排队执行

所有的定时器中,回调函数会在主线程后事件队列中执行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QY16CIvp-1680865565412)(assets/1680860749182.png)]

同步执行和异步执行

同步执行:在主线程执行,会阻止后续代码执行

异步执行:会将回调函数放入到事件队列执行,不会阻止主线程后续代码执行,定时器是异步执行

练习:开启周期性定时器,每隔3秒钟打印hello,打印3次以后清除定时器。

练习:开启周期性定时器,每隔1秒钟获取当前的时间,最后显示以下效果:

​ 今天是xxxx年xx月xx日 xx:xx:xx 星期几

每隔1秒渲染一次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值