1.模块化是是什么?
- 解决一个复杂的问题,将系统划分成若干模块的过程。 模块是可组合、分解、更换的。
- 优点:复用性 可维护性 按需加载
2.模块的分类有哪些?
- 内置模块 (fs http path)
- 自定义模块 (用户创建的单个js文件)
- 第三方模块 (第三方开发的)
3.npm与包?
- www.npmjs.com/ 知名网站 包分为: 项目包:开发依赖包 核心依赖包
全局包: npm install 包名 -g npm uninstall 包名 -g
- 写个时间处理包
- 包的三个文件 package.json
{
"name": "first-tool",
"version": "1.0.0",
"main": "index.js",
"description": "提供了时间格式化等相关功能",
"keywords": [
"first",
"dateFormate"
],
"license": "ISC"
}
index.js
//格式化时间方法
function dateFormat(dateStr){
const dt=new Date(dateStr)
const y=dt.getFullYear()
const m=padZero(dt.getMonth()+1)
const d=padZero(dt.getDate())
const hh=padZero(dt.getHours())
const mm=padZero(dt.getMinutes())
const ss=padZero(dt.getSeconds())
return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
}
//补全0的方法
function padZero(n){
return n>9?n:'0'+n
}
//对外暴露的方法
module.exports={
dateFormat
}
README.md
// 页面中使用
const first=require('./first-tool') 入口文件是index.js 可以省
const tody=first.dateFormat(new Date())
console.log(tody)
- 解决下载包慢的问题 使用淘宝镜像
4.模块化加载的机制是?
- 优先从缓存中加载 模块在第一次加载之后被缓存
5.模块作用域是什么?
- 就是在单个模块中才能访问,其他模块无法访问。
- 作用:防止全局变量污染
6.对外暴露一个对象
- module.exports={}
- exports
- exports与module.exports指向同一个对象