书架

书架

=一个知识书库=

前端10 个 Web API

前端10 个 Web API

JavaScript中有些API可能使用率比较低,下面我们逐一介绍它们的用法和使用场景。 ## Blob API `Blob API` 用于处理二进制数据,可以方便地将数据转换为Blob对象或从Blob对象读取数据。 ```javascript // 创建一个Blob对象 const myBlob = new Blob(["Hello, world!"], { type: "text/plain" }); // 读取Blob对象的数据 const reader = new FileReader(); reader.addEventListener("loaden
more...
前端需要掌握的设计模式

前端需要掌握的设计模式

提到设计模式,相信知道的同学都会脱口而出,五大基本原则(SOLID)和 23 种设计模式。SOLID 所指的五大基本原则分别是:单一功能原则、开放封闭原则、里式替换原则、接口隔离原则和依赖反转原则。逐字逐句诠释这五大基本原则违背了写这篇文章的初衷,引用社区大佬的理解,SOLID 可以简单概括为六个字,即“高内聚,低耦合”: - **高**层模块不依赖底层模块,即为依赖反转原则。 - **内**部修改关闭,外部扩展开放,即为开放封闭原则。 - **聚**合单一功能,即为单一功能原则。 - **低**知识要求,对外接口简单,即为迪米特法则。 - **耦**合多个接口,不如独立拆分,即
more...
前端经典面试题(60道前端面试题包含JS、CSS、React、浏览器等)

前端经典面试题(60道前端面试题包含JS、CSS、React、浏览器等)

# 简答题 # 1、什么是防抖和节流?有什么区别?如何实现? <!--more--> **防抖** > 触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间 - 思路: > 每次触发事件时都取消之前的延时调用方法 ```javascript function debounce(fn) { let timeout = null; // 创建一个标记用来存放定时器的返回值 return function () { clearTimeout(timeout); // 每当用户输入的
more...
前端项目重构

前端项目重构

## 一. 背景介绍 ### 1. 我们为什么要做项目重构 项目重构是每一家稳定发展的互联企业的必经之路, 就像一个产品的诞生, 会经历**产品试错**和**产品迭代** 一样, 随着业务或新技术的不断发展, 已有架构已无法满足更多业务扩展的需求, 所以只有通过重构来让产品“进化”, 才能跟上飞速发展的时代浪潮. ![图片](http://www.lixianglong.cn/bg_store/img/content/dFTfMt0114ibGfEXX5YO3ibeDVNAprV8.png) <!--more--> 这里我结合自己的实际经验总结一下项目重构的几个原
more...
前端最常用的4种跨域解决方案

前端最常用的4种跨域解决方案

# 前置知识 ![img](http://www.lixianglong.cn/bg_store/img/content/44170b217def4219822f7f28f8d5aa9d~noop.jpg) **什么是跨域?** 浏览器发送的请求地址(URL)与所在页面的地址 不同(端口/协议/域名 其一不同)。简言之,浏览器发出的请求url,与其所在页面的url不一样。此时,同源策略会让浏览器拒收 服务器响应回来的数据,报错信息如下: ![img](http://www.lixianglong.cn/bg_store/img/content/6c583e8bc
more...