无题
提交到 git 仓库PS:git 不会从 0 讲起
选择平台
工作中,按照公司规定,可能有内网 git 仓库
正式的开源项目,需要积累 star ,可以考虑 github (但有时访问不稳定,不同网络环境不一样)
个人学习项目,尽量选择国内平台,速度快
我选择 coding.net
演示12git remote add origin xxxgit push -u origin master
huskygit-hook
安装依赖
1npm install husky -save-dev
参考文档 https://github.com/typicode/husky 增加三个 pre-commit 命令
123npm run lintnpm run formatgit add .
可以故意制造一个错误:定义一个未使用变量(eslint 配置文件 rules 增加 'no-unused-vars': 'error',)然后执行 git commit 试试
commit-lint参考文档 https://github.com/conventional-c ...
编码规范
代码规范高质量代码的特点
严格编码规范(靠工具、流程,而非自觉)
合理、规范的注释
代码合理拆分
两者区别eslint prettier
eslint 编码规范,如变量未定义(语法语义)
prettier 编码风格,如末尾是否用 ;
eslint 也有编码风格的功能,两者可能会有冲突
eslint安装插件
1npm install eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin -save-dev
初始化配置文件 .eslint.js
1npx eslint --init ## 然后根据引导一步一步走
解释:eslint plugin 与 extend 的区别:
extend 提供的是 eslint 现有规则的一系列预设
plugin 则提供了除预设之外的自定义规则,当你在 eslint 的规则里找不到合适的的时候就可以借用插件来实现了
安装 vscode 插件 eslint ,此时就可以看到代码 App.txs 中的错误提示(如定义一个未使用的变量)
在 package.json ...
大屏自适应
如何做大屏自适应export function autoScale(selector, options) { // 这里定义了一个 debounce 函数,用于限制函数在一定时间内只能触发一次 function debounce(fn, delay) { let timer = null; return function () { // 每次函数被调用时,清除之前的定时器 if (timer) clearTimeout(timer); // 创建一个新的定时器,在指定的延迟后执行传入的函数 timer = setTimeout(fn, delay); } }
// 这里定义了 autoScale 函数,用于根据指定的宽高比例调整元素的大小和位置
// 首先获取指定选择器对应的元素
const el = document.querySelector(selector);
// 从传入的参数 opt ...
line-height继承
line-height如何继承?案例一如下`body {
font-size: 20px;
line-height: 50px;
}
p {
font-size:16px;
}
这是一行文字
这时候p标签是50px
`
案例二如下`body {
font-size: 20px;
line-height: 1.5;
}
p {
font-size:16px;
}
这是一行文字
这时候p标签是24px
怎么来的呢?
就是1.5*16拿到的
`
案例三`body {
font-size: 20px;
line-height: 200%;
}
p {
font-size:16px;
}
这是一行文字
这时候p标签是40px
怎么来的呢?
就是20*200%拿到的,这个地方是先算完之后在去继承的,这里就是这个百分比坑
`
什么是cookie
什么是cookie
存储在浏览器的一段字符串(最大5kb)
跨域不共享(浏览器为每一个浏览器存储了cookie)
格式如k1=v1;k2=v2;k3=v3;因此可以存储结构化数据
每次发送http请求,会将请求域的cookie一起发送给server
server可以修改cookie并且返回给浏览器
浏览器也可以通过JavaScript修改cookie(有限制)
Map和Set应用场景
#Map 和 Set 的使用场景
##Map 的使用场景:
适用于需要存储键值对信息,并且需要根据键来查找对应值的情况。
可以用于去重,并且保持插入顺序。
在处理大量键值对时,可以比普通对象更高效。
##Set 的使用场景:
适用于需要存储唯一值的情况,如去重。
可以用于检查值是否存在于集合中,性能优于数组。
底层算法
Map 和 Set 的底层算法:
Map 和 Set 的底层实现通常使用哈希表或类似的数据结构来存储数据,以实现快速的插入、删除和查找操作。使用场景和优缺点
###Map 和 Set 的优点:
提供了高效的数据存储和检索机制,适用于大量数据的管理。Map 和 Set 提供了丰富的 API,易于操作和管理数据集合。由于底层实现使用哈希表等高效数据结构,性能较好。
Map 和 Set 的缺点:
占用内存较多,特别是在处理大量数据时。
不支持像数据库那样的持久化存储,一旦应用关闭,数据就会丢失。
使用网络请求的情况情况:
当本地内存无法承载大量数据时,可以考虑通过网络请求从服务器获取数据。对于大型数据集,尤其是实时需要的数据,通过网络请求来获取数 ...