工具函数
常用工具函数
创建一系列相关对象的设计模式实现
适配器模式的实现与应用场景
适配器模式的实现与应用场景
实现一个灵活的 add 函数,支持多种调用方式和参数累加
实现一个函数来计算两个数组的交集,返回两个数组中共同存在的元素
实现一个函数,对数组中的对象根据指定的key进行去重,保留第一个或最后一个出现的元素
使用字符串模拟竖式加法,解决JavaScript中超出安全整数范围的大数相加问题
使用 BigInt 和字符串模拟实现大数相加
理解三种改变 this 指向的方法,并手写实现 bind
桥接模式的实现与应用场景
用建造者模式分步构建复杂对象
封装 localStorage,实现带过期时间的本地缓存管理功能
使用代理模式缓存函数计算结果,避免重复计算
实现将字符串(如下划线、中划线命名)转换为驼峰命名格式的函数
通过扩展 Number 原型实现链式调用的加减运算功能
使用设计模式优化咖啡机代码,实现装饰器和建造者模式
用状态机模式实现咖啡机的状态流转
前端开发中常用的设计模式及使用场景
用状态模式改造咖啡机的状态管理
实现一个函数,找出字符串数组中所有字符串的最长公共前缀
实现函数组合工具,将多个函数从右到左依次执行,前一个函数的返回值作为后一个函数的参数
实现限制并发数量的请求调度器
用树形结构表示部分-整体关系,统一处理单个对象和组合对象
定义 log 方法代理 console.log,支持参数透传
装饰器模式的实现与应用场景
手写防抖和节流函数
手写实现函数柯里化,将多参数函数转换为单参数函数的嵌套调用形式
手写一个防抖函数,用于限制高频触发的事件,只在最后一次触发后执行
装饰者模式的实现与应用
实现一个深度比较函数,判断两个值是否完全相等,支持对象、数组、基本类型等多种数据类型的比较
用策略模式、对象映射等方式优化冗长的条件判断
实现一个函数,能够递归遍历深层嵌套对象,修改指定的 key 名称
前端开发中常用的设计模式及实际应用场景
使用正则表达式验证字符串是否符合邮箱格式的多种实现方法
手写 Event Bus / EventEmitter
用统一接口简化复杂子系统的调用
外观模式的实现与应用场景
JavaScript 工厂模式的实现与应用
JavaScript 中工厂模式的实现与应用场景
JavaScript 中三种工厂模式的实现与应用场景
享元模式的实现与应用场景
单例、观察者、策略、代理等设计模式在前端的实现与应用
实现一个方法,从对象中筛选出值大于2的键值对,并返回新对象
通过正则表达式解析document.cookie字符串,实现根据cookie名称获取对应值的方法
使用 JavaScript Date 对象获取并格式化当前日期
JavaScript 在 Iterator 出现前如何实现迭代
通过路径字符串安全地获取和设置对象深层嵌套属性的值
实现一个函数来验证中国大陆身份证号码的合法性,包括格式校验和校验码验证
实现迭代器模式,顺序访问集合元素而不暴露内部结构
解决鼠标快速触发导致动画滞后反复执行的问题
手写实现JSON字符串解析函数,将JSON格式字符串转换为JavaScript对象
使用任务队列实现链式调用和延迟执行
手写实现JSON.stringify方法,支持各种数据类型的序列化处理
手写实现lodash库中的chunk方法,将数组按照指定长度拆分成多个子数组
使用滑动窗口算法找出字符串中最长的不含重复字符的子串
实现 Least Recently Used 缓存淘汰策略
实现一个函数,找出字符串中出现次数最多的字符及其出现次数
理解 new 操作符的执行过程并手写实现
用中介者对象协调多个对象间的通信
通过中介者对象协调多个对象之间的交互
实现对象数组的去重功能,支持多种去重策略和自定义比较规则
实现数字的千分位分隔显示
手写观察者模式并理解其应用场景
用生活场景理解观察者模式并实现
实现观察者模式,理解发布-订阅机制
手写 JavaScript 观察者模式
手写实现字符串填充方法 padStart 和 padEnd 的 polyfill,用于在字符串开头或末尾填充指定字符
使用正则表达式验证中国大陆手机号码格式的有效性
JavaScript 代理模式的实现与应用场景
用婚介所的例子理解和实现代理模式
代理模式的实现与前端应用场景
JavaScript 代理模式的实现与应用场景
通过原生 JavaScript 实现移动端上拉加载和下拉刷新功能
用 JavaScript 生成指定范围的随机数数组并排序
通过分片上传和断点续传技术实现大文件上传
通过 setInterval 的循环特性来模拟 setTimeout 的延迟执行功能,理解定时器的底层原理
使用策略模式重构多条件询价代码
手写 Hash 路由和 History 路由
使用 setTimeout 递归调用的方式来模拟 setInterval 的功能,并解决 setInterval 的一些潜在问题
实现 RGB 颜色值到十六进制颜色的转换
手写实现浏览器定时器API setTimeout和setInterval的功能
使用工厂函数统一创建不同类型的对象
手写 JavaScript 单例模式的多种实现方式
手写一个 sleep 函数,实现异步等待指定毫秒数的功能
让对象在状态改变时自动切换行为
用状态模式管理对象的状态切换和行为变化
用策略模式消除 if-else,实现算法的灵活切换
策略模式的实现与应用场景
用单例模式封装 localStorage 的 setItem 和 getItem 方法
用 JavaScript 实现策略模式,消除条件分支
编写方法计算字符串的字节长度,区分中英文字符
根据字符重复次数压缩字符串,如 aabcccccaaa 压缩为 a2b1c5a3
实现在字符串中查找子串位置的功能,类似于 String.prototype.indexOf 方法
手写 trim 方法清除字符串前后空格
手写 Mustache 风格的模板引擎
将数字格式化为千位分隔符形式,如 1234567 转换为 1,234,567
手写实现类似 ES6 模板字符串的解析功能,支持变量插值和表达式计算
手写一个精确判断 JavaScript 数据类型的工具函数,支持所有常见数据类型的识别
使用 Promise 和 setTimeout 实现红绿灯循环亮灯效果
手写实现一个节流函数,控制函数在指定时间内只执行一次,常用于性能优化场景
探讨从指定数据源中生成不重复随机数组的多种实现方法及其时间复杂度分析
将 URL 查询参数字符串解析为 JavaScript 对象,支持数组、重复参数等场景
在输入框中判断用户输入是否为有效网址
使用栈数据结构判断字符串中的括号是否匹配有效,支持多种括号类型
使用虚拟代理实现延迟加载和性能优化
实现访问者模式,分离数据结构与操作
实现一个函数对版本号字符串数组进行正确排序,支持多段版本号比较