笔记-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设计模式 笔记
设计原则:
单一职责原则:一个类,应该仅有一个引起它变化的原因,简而言之就是功能要单一;
开放封闭原则:对拓展开放,对修改关闭;
接口隔离原则:一个接口应该是一种角色,不该干的事情不要干,该干的都要干,简而言之就是降低耦合、减低依赖;
工厂模式
工厂模式是由一个方法来决定到底创建哪个类的实例,而这些类经常拥有相同的接口。这种模式主要用在所实例化的类型在编...
笔记-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...
笔记-6-JavaScript高级补充(跨域/事件循环) 笔记
一、什么是跨域?什么是同源策略? 跨域问题通常是由浏览器的同源策略(Same-Origin Policy,SOP)引起的访问问题。 同源策略是浏览器的一个重要安全机制,他用于限制一个来源的文档或脚本如何能够与另一个来源的资源进行交互。 当两个URL的协议、主机(Host)、端口都相同时才被认为是同源。 在早期,服务器渲染的网站不会有跨域问题。随着前后端分离的...