笔记-15-工具记录(husky/eslint/prettier) 笔记
public里的资源在打包时直接复制到dist文件夹里
ES Module里拼接路径fileURLToPath(new URL('./src', import.meta.url))
tsconfig.json 文件中
include 告诉ts有哪些文件需要编译
paths为了便于vs code进行代码提示
以前常用:EditorConfig 为不同IDE的多...
笔记-14-TypeScript 笔记
解决JS没有类型检测的痛点(根据V8优化代码的原理,其实也可以提升一些性能)
TypeScript的基础类型:数字、布尔、字符串、数组、元组、联合、枚举、any、unknow、void、undefined、Never
高级类型:union组合类型、Nullable可空类型、Literal预定义类型
//一般的写法 添加类型注解
function add(n1...
笔记-12-前端模块化/git 笔记
Node.js是一个基于V8 JavaScript引擎的JavaScript运行时环境。
直到ES6才有了自己的模块化方案:ESModule
在此之前:Commonjs/AMD/CMD
CommonJS是一个规范,最初提出来是在浏览器以外的地方使用,当时被命名为ServerJS,后来为了体现他的广泛性,修改为CommonJS,简称CJS
Node是Commo...
笔记-11-JavaScript设计模式 笔记
观察者模式(行为型):应用场景 订阅发布 (vue)
class PubSub {
constructor() {
this.handlers = {};
}
subscribe(event, handler) {
this.handlers[event] = this.handlers[event]...
笔记-10-JavaScript高级补充(节流防抖) 笔记
WebStorage主要提供了一种机制,可以让浏览器提供一种比cookie更直观的key、value存储方式。
localStorage 本地存储,永久性存储,关闭网页也存在
sessionStorage 会话存储,提供本次会话的存储,关闭页面数据清除
搜索框的联想词可以用防抖
用户缩放浏览器的resize事件
监听浏览器滚动,完成某些特定操作
当事件触发时...
笔记-9-JavaScript高级补充(深克隆/正则) 笔记
算数运算符没有什么难度(考点),这里只记一下自增、自减
// a++ 先用a原先的值,再自增1;++a先自增1,再提供自增后的值
var a = 1, b = 2;
var c = b++ // 这里c的值是2,b自增后变成3
// 这里a++提供的是1,--b是2,++a因为前面已经+1所以是3,c是2
console.log(a++ + --b + ++...
笔记-8-JavaScript高级补充(异步编程/ES6+) 笔记
早期处理异步的主要方式就是使用回调函数,那个时候相对复杂的异步处理常常会出现回调地狱。 为了解决回调地狱JS提供了Promise和async/await Promise 有三个状态,而且只会改变一次。 待定(pending)初始状态,已完成(fulfilled),已拒绝(rejected) new Promise((resolve, reject)= { /...
笔记-7-JavaScript高级补充(执行过程/内存管理) 笔记
JS代码下载好后,如何被一步步的执行的?
浏览器内核由两部分组成,以webkit为例:
WebCore 负责HTML解析、布局、渲染等相关操作
JavaScriptCore 负责解析、执行JS代码
JS引擎非常多,介绍几个比较重要的:
SpiderMonkey:第一款JS引擎,由Brendan Eich开发(JS作者),1996年发布
Chakra:最初是I...