前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合

    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础

    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习

    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他

    • Handbook
    • 职场话题
    • CSS可视化
  • 框架文档

    • React
    • Vue3
    • Vite
    • Svelte
    • Angular
    • NodeJS
    • Egg
    • Nest
    • Koa
    • Express
    • Electron
    • Ionic
    • Taro
    • Uniapp
    • React Native
    • Webpack
    • Rollup
    • Jquery API
    • Bootstrap
    • Axios
    • Lodash
    • RXJS
    • Sequelize
    • TypeORM
    • Mongoose
    • GraphQL
    • Puppeteer
    • Sass
    • Less
    • Umi4
    • Miniprogram
  • 文档教程

    • Cheatsheets
    • Devdocs有可能是全球最全的文档库
    • Overapi
    • JavaScript 标准参考教程
    • ES6 入门教程
    • MDN在线文档
    • Typscript中文文档
    • JavaScript Promise迷你书(中文版)
    • Canvas API中文
    • Git中文手册
    • 云开发Cloudbase
    • Serverless中文文档
  • UI组件

    • Ant Design React
    • Ant Design Vue
    • Ant Design Pro
    • ProComponents
    • 腾讯Tdesign
    • NutUI京东风格的轻量级移动端 Vue 组件库
    • Semantic UI Vue
    • Cube UI Vue滴滴
    • Iview UI
    • 有赞Vant Vue3
    • 有赞Vant 小程序
    • Element UI Vue3
  • 可视化

    • Antv
    • Bizcharts
    • Threejs
    • D3js
    • Highcharts
    • Echarts
  • 配置相关

    • ESLint
    • Babel
    • Nginx中文文档
    • Github Action中文
    • Docker官方文档
    • Jenkins官方文档
  • 后端相关

    • Spring官方文档中文版
    • Spring Boot官方文档
    • Spring Cloud官方文档
    • Java8官方文档
    • maven官方文档
    • Tomcat 8官方文档
    • Kafka中文文档
    • MyBatis中文文档
    • RabbitMQ中文文档
    • Dubbo中文文档
    • Netty官方文档
    • Elasticsearch官方文档
    • K8S官方文档
  • 实用工具

    • 在线正则表达式调试工具
    • 在线正则表达式可视化
    • 常用正则表达式大全
    • 可以在线看代码流程的网站:loupe
    • 在线MD5编码工具
    • 在线JWT解码工具
    • 在线JSON解析
    • 在线文本比对
    • 在线JS代码格式化
    • 在线SQL压缩格式化
    • 在线XML压缩格式化
    • 在线时间戳转化工具
    • 在线RGB颜色转化工具
    • 在线HTTP在线接口测试工具
    • 在线IP地址查询
    • 在线菜鸟综合导航工具
  • 在线编程

    • MipCode快速的在线代码创作工具
    • Codepen
    • Jsbin
    • CodeSandBox在线快速学习React/Vue
    • Vue SFC Playground
    • Vue3 模板在线解析查看编译结果
    • Svelte Playground
    • 在线尝试Babel编译
    • Typescript在线编译
    • AST可视化编辑
    • 在线尝试Rollup打包
    • Prettier Playground
    • Stackblitz基于VSCODE的WEBIDE
    • NPM Runkit在浏览器中快速学习及尝试Node.js模块
    • Play with Docker在线体验
  • CSS相关

    • 用来帮助大家查找CSS的相关属性的语法,以及使用方法
    • 提供了CSS相关属性的浏览器兼容表,同时提供了对应属性资源
    • Flex在线动态练习
    • 贝塞尔曲线生成工具
    • SCSS在线转CSS
    • Clip-path在线生成器
    • Animate.css动画效果
    • 按需定制CSS动画效果
    • 一份清单,按字母表顺序列出了每个CSS属性
    • CSS按钮生成器
    • Css3按钮动画
    • CSS3渐变样式生成器,类似Photoshop中的渐变界面
    • CSS3 Maker可在线演示渐变阴影旋转动画并生成代码
    • CSS3 Tool非常方便的生成背景渐变、阴影、旋转和边框圆角效果
    • SVG背景生成
    • 多张图片合成雪碧图
    • 汇集了实现各种加载效果的CSS代码片段
    • SVG滤镜
    • HTML5 元素标签含义大全(元素周期表)
    • HTML语义化
    • KakaCss快速生成Css样式,在任意网站复制内容,再到本页面Ctrl+V
    • CSS参考手册
    • 各种各样的loading效果
    • CSS shadow generator
    • 通过拖拽的形式生成需要的border radius
    • 花式半径生成器-通过拖拽的形式生成需要的border radius
    • cssgrid-generator
  • 综合

    • 可视化学习算法网站
    • 在线Nginx配置
    • React生命周期查看网站
    • CodeFun设计稿智能生成源代码
    • Imgcook由设计稿一键智能生成代码的大厨
  • 创作必备

    • 在线画图processon
    • Draw.io免费的流行的流程图工具
    • 在线思维导图mindline
    • 在线字数统计
    • 在线mardown排版
    • 在线免费图床
    • 在线代码截图carbon
    • 在线短链生成
    • 在线文本替换
    • 在线文件压缩
    • 在线多媒体转换器
    • 在线PDF转化工具SmallPdf
    • 在线任意文件的格式转换Convertio
    • 在线PS工具
    • 在线抠图工具
    • LOGO在线制作
    • 在线制作海报设计工具
    • Open source icons
    • 表情包在线网站
    • 图片智能放大工具
    • ICO图标在线生成
    • 视频转GIF工具
    • 音频在线处理
    • 多图合成GIF工具
    • 在线图片压缩工具
    • Pixabay图片素材库
    • Unsplash图片素材库
    • Pexels图片素材库
小程序题库
公众号动态
博客动态
前端导航
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合

    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础

    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习

    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他

    • Handbook
    • 职场话题
    • CSS可视化
  • 框架文档

    • React
    • Vue3
    • Vite
    • Svelte
    • Angular
    • NodeJS
    • Egg
    • Nest
    • Koa
    • Express
    • Electron
    • Ionic
    • Taro
    • Uniapp
    • React Native
    • Webpack
    • Rollup
    • Jquery API
    • Bootstrap
    • Axios
    • Lodash
    • RXJS
    • Sequelize
    • TypeORM
    • Mongoose
    • GraphQL
    • Puppeteer
    • Sass
    • Less
    • Umi4
    • Miniprogram
  • 文档教程

    • Cheatsheets
    • Devdocs有可能是全球最全的文档库
    • Overapi
    • JavaScript 标准参考教程
    • ES6 入门教程
    • MDN在线文档
    • Typscript中文文档
    • JavaScript Promise迷你书(中文版)
    • Canvas API中文
    • Git中文手册
    • 云开发Cloudbase
    • Serverless中文文档
  • UI组件

    • Ant Design React
    • Ant Design Vue
    • Ant Design Pro
    • ProComponents
    • 腾讯Tdesign
    • NutUI京东风格的轻量级移动端 Vue 组件库
    • Semantic UI Vue
    • Cube UI Vue滴滴
    • Iview UI
    • 有赞Vant Vue3
    • 有赞Vant 小程序
    • Element UI Vue3
  • 可视化

    • Antv
    • Bizcharts
    • Threejs
    • D3js
    • Highcharts
    • Echarts
  • 配置相关

    • ESLint
    • Babel
    • Nginx中文文档
    • Github Action中文
    • Docker官方文档
    • Jenkins官方文档
  • 后端相关

    • Spring官方文档中文版
    • Spring Boot官方文档
    • Spring Cloud官方文档
    • Java8官方文档
    • maven官方文档
    • Tomcat 8官方文档
    • Kafka中文文档
    • MyBatis中文文档
    • RabbitMQ中文文档
    • Dubbo中文文档
    • Netty官方文档
    • Elasticsearch官方文档
    • K8S官方文档
  • 实用工具

    • 在线正则表达式调试工具
    • 在线正则表达式可视化
    • 常用正则表达式大全
    • 可以在线看代码流程的网站:loupe
    • 在线MD5编码工具
    • 在线JWT解码工具
    • 在线JSON解析
    • 在线文本比对
    • 在线JS代码格式化
    • 在线SQL压缩格式化
    • 在线XML压缩格式化
    • 在线时间戳转化工具
    • 在线RGB颜色转化工具
    • 在线HTTP在线接口测试工具
    • 在线IP地址查询
    • 在线菜鸟综合导航工具
  • 在线编程

    • MipCode快速的在线代码创作工具
    • Codepen
    • Jsbin
    • CodeSandBox在线快速学习React/Vue
    • Vue SFC Playground
    • Vue3 模板在线解析查看编译结果
    • Svelte Playground
    • 在线尝试Babel编译
    • Typescript在线编译
    • AST可视化编辑
    • 在线尝试Rollup打包
    • Prettier Playground
    • Stackblitz基于VSCODE的WEBIDE
    • NPM Runkit在浏览器中快速学习及尝试Node.js模块
    • Play with Docker在线体验
  • CSS相关

    • 用来帮助大家查找CSS的相关属性的语法,以及使用方法
    • 提供了CSS相关属性的浏览器兼容表,同时提供了对应属性资源
    • Flex在线动态练习
    • 贝塞尔曲线生成工具
    • SCSS在线转CSS
    • Clip-path在线生成器
    • Animate.css动画效果
    • 按需定制CSS动画效果
    • 一份清单,按字母表顺序列出了每个CSS属性
    • CSS按钮生成器
    • Css3按钮动画
    • CSS3渐变样式生成器,类似Photoshop中的渐变界面
    • CSS3 Maker可在线演示渐变阴影旋转动画并生成代码
    • CSS3 Tool非常方便的生成背景渐变、阴影、旋转和边框圆角效果
    • SVG背景生成
    • 多张图片合成雪碧图
    • 汇集了实现各种加载效果的CSS代码片段
    • SVG滤镜
    • HTML5 元素标签含义大全(元素周期表)
    • HTML语义化
    • KakaCss快速生成Css样式,在任意网站复制内容,再到本页面Ctrl+V
    • CSS参考手册
    • 各种各样的loading效果
    • CSS shadow generator
    • 通过拖拽的形式生成需要的border radius
    • 花式半径生成器-通过拖拽的形式生成需要的border radius
    • cssgrid-generator
  • 综合

    • 可视化学习算法网站
    • 在线Nginx配置
    • React生命周期查看网站
    • CodeFun设计稿智能生成源代码
    • Imgcook由设计稿一键智能生成代码的大厨
  • 创作必备

    • 在线画图processon
    • Draw.io免费的流行的流程图工具
    • 在线思维导图mindline
    • 在线字数统计
    • 在线mardown排版
    • 在线免费图床
    • 在线代码截图carbon
    • 在线短链生成
    • 在线文本替换
    • 在线文件压缩
    • 在线多媒体转换器
    • 在线PDF转化工具SmallPdf
    • 在线任意文件的格式转换Convertio
    • 在线PS工具
    • 在线抠图工具
    • LOGO在线制作
    • 在线制作海报设计工具
    • Open source icons
    • 表情包在线网站
    • 图片智能放大工具
    • ICO图标在线生成
    • 视频转GIF工具
    • 音频在线处理
    • 多图合成GIF工具
    • 在线图片压缩工具
    • Pixabay图片素材库
    • Unsplash图片素材库
    • Pexels图片素材库
小程序题库
公众号动态
博客动态
前端导航
  • 基础进阶

    • 基础篇
    • 进阶篇
    • 高频篇
    • 手写篇
      • 1 实现防抖函数(debounce)
      • 2 实现节流函数(throttle)
      • 3 实现instanceOf
      • 4 实现new的过程
      • 5 实现call方法
      • 6 实现apply方法
      • 7 实现bind方法
      • 8 实现深拷贝
        • 1 简洁版本
        • 2 实现完整的深拷贝
      • 9 实现类的继承
        • 1 实现类的继承-简版
        • 2 ES5实现继承-详细
      • 10 实现Promise相关方法
        • 1 实现Promise的resolve
        • 2 实现 Promise.reject
        • 3 实现 Promise.prototype.finally
        • 4 实现 Promise.all
        • 5 实现promise.allsettle
        • 6 实现 Promise.race
        • 7 实现一个简版Promise
        • 8 Promise 实现-详细
        • 9 实现Promisify
        • 10 完整实现Promises/A+规范
      • 11 实现发布订阅模式
      • 12 实现观察者模式
      • 13 实现单例模式
      • 14 实现Ajax
        • 1 原生实现
        • 2 Promise实现
      • 15 实现JSONP方法
      • 16 实现async/await
      • 17 基于Generator函数实现async/await原理
      • 18 实现ES6的const
      • 19 实现一个迭代器生成函数
        • 1 ES6对迭代器的实现
        • 2 实现迭代器生成函数
      • 20 实现ES6的extends
      • 21 实现Object.create
      • 22 实现Object.freeze
      • 23 实现Object.is
      • 24 实现一个compose函数
      • 25 setTimeout与setInterval实现
        • 1 setTimeout 模拟实现 setInterval
        • 2 setInterval 模拟实现 setTimeout
      • 26 实现Node的require方法
      • 27 实现LRU淘汰算法
      • 28 框架相关
        • 1 将虚拟 Dom 转化为真实 Dom
        • 2 实现事件总线结合Vue应用
        • 3 实现一个双向绑定
        • 4 实现一个简易的MVVM
        • 5 实现一个迷你版的vue
        • 6 实现Vue reactive响应式
        • 7 实现模板字符串解析功能
        • 8 实现一下hash路由
        • 9 实现redux中间件
        • 10 实现redux-thunk
      • 29 数组相关
        • 1 实现forEach方法
        • 2 实现filter方法
        • 3 实现find方法
        • 4 实现findIndex方法
        • 5 实现map方法
        • 6 实现reduce方法
        • 7 实现every方法
        • 8 实现some方法
        • 9 实现数组扁平化flat方法
        • 10 实现Array.isArray方法
        • 11 实现Array.of方法
        • 12 数组去重方法汇总
        • 13 对象数组如何去重
        • 14 数组中的数据根据key去重
        • 15 类数组转化为数组的方法
        • 16 reduce用法汇总
      • 30 正则相关
        • 1 实现千位分隔符
        • 2 判断是否是电话号码
        • 3 验证是否是邮箱
        • 4 验证是否是身份证
        • 5 用正则写一个根据name获取cookie中的值的方法
      • 31 函数柯里化相关
        • 1 实现一个JS函数柯里化
        • 2 请实现一个 add 函数,满足以下功能
        • 3 实现 (5).add(3).minus(2) 功能
      • 32 字符串相关
        • 1 查找字符串中出现最多的字符和个数
        • 2 字符串查找
        • 3 字符串最长的不重复子串
      • 33 实现工具函数
        • 1 对象扁平化
        • 2 实现一个管理本地缓存过期的函数
        • 3 实现lodash的chunk方法–数组按指定长度拆分
        • 4 手写深度比较isEqual
        • 5 实现一个JSON.stringify
        • 6 实现一个JSON.parse
        • 7 解析 URL Params 为对象
        • 8 转化为驼峰命名
        • 9 实现一个函数判断数据类型
        • 10 对象数组列表转成树形结构(处理菜单)
        • 11 树形结构转成列表(处理菜单)
      • 34 手写常见排序
        • 1 冒泡排序
        • 2 快速排序
        • 3 选择排序
        • 4 插入排序
        • 5 二分查找
      • 35 算法数据结构
        • 1 实现一个链表结构
        • 2 实现一个队列
        • 3 递归反转链表
        • 4 二叉树搜索
        • 5 二叉树层次遍历
        • 6 二叉树深度遍历
      • 36 综合
        • 1 实现一个 sleep 函数,比如 sleep(1000) 意味着等待1000毫秒
        • 2 给定两个数组,写一个方法来计算它们的交集
        • 3 异步并发数限制
        • 4 异步串行 | 异步并行
        • 5 实现有并行限制的 Promise 调度器
        • 6 图片懒加载
        • 7 实现 getValue/setValue 函数来获取path对应的值
        • 8 创建10个标签,点击的时候弹出来对应的序号
        • 9 版本号排序的方法
        • 10 请实现 DOM2JSON 一个函数,可以把一个 DOM 节点输出 JSON 的格式
        • 11 分片思想解决大数据量渲染问题
        • 12 实现一个add方法完成两个大数相加
        • 13 怎么在制定数据源里面生成一个长度为 n 的不重复随机数组 能有几种方法 时间复杂度多少(字节)
        • 14 查找数组公共前缀(美团)
        • 15 判断括号字符串是否有效(小米)
        • 16 实现一个padStart()或padEnd()的polyfil
        • 17 设计一个方法提取对象中所有value大于2的键值对并返回最新的对象
        • 18 实现一个拖拽
        • 19 基于Promise.all实现Ajax的串行和并行
        • 20 修改嵌套层级很深对象的 key
    • 综合题型
    • 其他问题
    • 设计模式
  • 精选模块

完整面试题地址:
作者:程序员poetry
扫码关注作者公众号:「前端进阶之旅」 每天分享技术干货

# 面试高频手写题

建议优先掌握:

  • instanceof - 考察对原型链的理解
  • new - 对创建对象实例过程的理解
  • call/apply/bind - 对this指向的理解
  • 手写promise - 对异步的理解
  • 手写原生ajax - 对ajax原理和http请求方式的理解,重点是get和post请求的实现

# 1 实现防抖函数(debounce)

防抖函数原理:把触发非常频繁的事件合并成一次去执行 在指定时间内只执行一次回调函数,如果在指定的时间内又触发了该事件,则回调函数的执行时间会基于此刻重新开始计算

防抖动和节流本质是不一样的。防抖动是将多次执行变为最后一次执行,节流是将多次执行变成每隔一段时间执行

eg. 像百度搜索,就应该用防抖,当我连续不断输入时,不会发送请求;当我一段时间内不输入了,才会发送一次请求;如果小于这段时间继续输入的话,时间会重新计算,也不会发送请求。

手写简化版:

// func是用户传入需要防抖的函数
// wait是等待时间
const debounce = (func, wait = 50) => {
  // 缓存一个定时器id
  let timer = 0
  // 这里返回的函数是每次用户实际调用的防抖函数
  // 如果已经设定过定时器了就清空上一次的定时器
  // 开始一个新的定时器,延迟执行用户传入的方法
  return function(...args) {
    if (timer) clearTimeout(timer)
    timer = setTimeout(() => {
      func.apply(this, args)
    }, wait)
  }
}
@前端进阶之旅: 代码已经复制到剪贴板

适用场景:

  • 文本输入的验证,连续输入文字后发送 AJAX 请求进行验证,验证一次就好
  • 按钮提交场景:防止多次提交按钮,只执行最后提交的一次
  • 服务端验证场景:表单验证需要服务端配合,只执行一段连续的输入事件的最后一次,还有搜索联想词功能类似

# 2 实现节流函数(throttle)

节流函数原理:指频繁触发事件时,只会在指定的时间段内执行事件回调,即触发事件间隔大于等于指定的时间才会执行回调函数。总结起来就是:事件,按照一段时间的间隔来进行触发。

像dom的拖拽,如果用消抖的话,就会出现卡顿的感觉,因为只在停止的时候执行了一次,这个时候就应该用节流,在一定时间内多次执行,会流畅很多

手写简版

使用时间戳的节流函数会在第一次触发事件时立即执行,以后每过 wait 秒之后才执行一次,并且最后一次触发事件不会被执行

时间戳方式:

// func是用户传入需要防抖的函数
// wait是等待时间
const throttle = (func, wait = 50) => {
  // 上一次执行该函数的时间
  let lastTime = 0
  return function(...args) {
    // 当前时间
    let now = +new Date()
    // 将当前时间和上一次执行函数时间对比
    // 如果差值大于设置的等待时间就执行函数
    if (now - lastTime > wait) {
      lastTime = now
      func.apply(this, args)
    }
  }
}

setInterval(
  throttle(() =>
fe
Preview
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合

    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础

    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习

    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他

    • Handbook
    • 职场话题
    • CSS可视化
  • 框架文档

    • React
    • Vue3
    • Vite
    • Svelte
    • Angular
    • NodeJS
    • Egg
    • Nest
    • Koa
    • Express
    • Electron
    • Ionic
    • Taro
    • Uniapp
    • React Native
    • Webpack
    • Rollup
    • Jquery API
    • Bootstrap
    • Axios
    • Lodash
    • RXJS
    • Sequelize
    • TypeORM
    • Mongoose
    • GraphQL
    • Puppeteer
    • Sass
    • Less
    • Umi4
    • Miniprogram
  • 文档教程

    • Cheatsheets
    • Devdocs有可能是全球最全的文档库
    • Overapi
    • JavaScript 标准参考教程
    • ES6 入门教程
    • MDN在线文档
    • Typscript中文文档
    • JavaScript Promise迷你书(中文版)
    • Canvas API中文
    • Git中文手册
    • 云开发Cloudbase
    • Serverless中文文档
  • UI组件

    • Ant Design React
    • Ant Design Vue
    • Ant Design Pro
    • ProComponents
    • 腾讯Tdesign
    • NutUI京东风格的轻量级移动端 Vue 组件库
    • Semantic UI Vue
    • Cube UI Vue滴滴
    • Iview UI
    • 有赞Vant Vue3
    • 有赞Vant 小程序
    • Element UI Vue3
  • 可视化

    • Antv
    • Bizcharts
    • Threejs
    • D3js
    • Highcharts
    • Echarts
  • 配置相关

    • ESLint
    • Babel
    • Nginx中文文档
    • Github Action中文
    • Docker官方文档
    • Jenkins官方文档
  • 后端相关

    • Spring官方文档中文版
    • Spring Boot官方文档
    • Spring Cloud官方文档
    • Java8官方文档
    • maven官方文档
    • Tomcat 8官方文档
    • Kafka中文文档
    • MyBatis中文文档
    • RabbitMQ中文文档
    • Dubbo中文文档
    • Netty官方文档
    • Elasticsearch官方文档
    • K8S官方文档
  • 实用工具

    • 在线正则表达式调试工具
    • 在线正则表达式可视化
    • 常用正则表达式大全
    • 可以在线看代码流程的网站:loupe
    • 在线MD5编码工具
    • 在线JWT解码工具
    • 在线JSON解析
    • 在线文本比对
    • 在线JS代码格式化
    • 在线SQL压缩格式化
    • 在线XML压缩格式化
    • 在线时间戳转化工具
    • 在线RGB颜色转化工具
    • 在线HTTP在线接口测试工具
    • 在线IP地址查询
    • 在线菜鸟综合导航工具
  • 在线编程

    • MipCode快速的在线代码创作工具
    • Codepen
    • Jsbin
    • CodeSandBox在线快速学习React/Vue
    • Vue SFC Playground
    • Vue3 模板在线解析查看编译结果
    • Svelte Playground
    • 在线尝试Babel编译
    • Typescript在线编译
    • AST可视化编辑
    • 在线尝试Rollup打包
    • Prettier Playground
    • Stackblitz基于VSCODE的WEBIDE
    • NPM Runkit在浏览器中快速学习及尝试Node.js模块
    • Play with Docker在线体验
  • CSS相关

    • 用来帮助大家查找CSS的相关属性的语法,以及使用方法
    • 提供了CSS相关属性的浏览器兼容表,同时提供了对应属性资源
    • Flex在线动态练习
    • 贝塞尔曲线生成工具
    • SCSS在线转CSS
    • Clip-path在线生成器
    • Animate.css动画效果
    • 按需定制CSS动画效果
    • 一份清单,按字母表顺序列出了每个CSS属性
    • CSS按钮生成器
    • Css3按钮动画
    • CSS3渐变样式生成器,类似Photoshop中的渐变界面
    • CSS3 Maker可在线演示渐变阴影旋转动画并生成代码
    • CSS3 Tool非常方便的生成背景渐变、阴影、旋转和边框圆角效果
    • SVG背景生成
    • 多张图片合成雪碧图
    • 汇集了实现各种加载效果的CSS代码片段
    • SVG滤镜
    • HTML5 元素标签含义大全(元素周期表)
    • HTML语义化
    • KakaCss快速生成Css样式,在任意网站复制内容,再到本页面Ctrl+V
    • CSS参考手册
    • 各种各样的loading效果
    • CSS shadow generator
    • 通过拖拽的形式生成需要的border radius
    • 花式半径生成器-通过拖拽的形式生成需要的border radius
    • cssgrid-generator
  • 综合

    • 可视化学习算法网站
    • 在线Nginx配置
    • React生命周期查看网站
    • CodeFun设计稿智能生成源代码
    • Imgcook由设计稿一键智能生成代码的大厨
  • 创作必备

    • 在线画图processon
    • Draw.io免费的流行的流程图工具
    • 在线思维导图mindline
    • 在线字数统计
    • 在线mardown排版
    • 在线免费图床
    • 在线代码截图carbon
    • 在线短链生成
    • 在线文本替换
    • 在线文件压缩
    • 在线多媒体转换器
    • 在线PDF转化工具SmallPdf
    • 在线任意文件的格式转换Convertio
    • 在线PS工具
    • 在线抠图工具
    • LOGO在线制作
    • 在线制作海报设计工具
    • Open source icons
    • 表情包在线网站
    • 图片智能放大工具
    • ICO图标在线生成
    • 视频转GIF工具
    • 音频在线处理
    • 多图合成GIF工具
    • 在线图片压缩工具
    • Pixabay图片素材库
    • Unsplash图片素材库
    • Pexels图片素材库
小程序题库
公众号动态
博客动态
前端导航
  • 基础进阶

    • 基础篇
    • 进阶篇
    • 高频篇
    • 手写篇
      • 1 实现防抖函数(debounce)
      • 2 实现节流函数(throttle)
      • 3 实现instanceOf
      • 4 实现new的过程
      • 5 实现call方法
      • 6 实现apply方法
      • 7 实现bind方法
      • 8 实现深拷贝
        • 1 简洁版本
        • 2 实现完整的深拷贝
      • 9 实现类的继承
        • 1 实现类的继承-简版
        • 2 ES5实现继承-详细
      • 10 实现Promise相关方法
        • 1 实现Promise的resolve
        • 2 实现 Promise.reject
        • 3 实现 Promise.prototype.finally
        • 4 实现 Promise.all
        • 5 实现promise.allsettle
        • 6 实现 Promise.race
        • 7 实现一个简版Promise
        • 8 Promise 实现-详细
        • 9 实现Promisify
        • 10 完整实现Promises/A+规范
      • 11 实现发布订阅模式
      • 12 实现观察者模式
      • 13 实现单例模式
      • 14 实现Ajax
        • 1 原生实现
        • 2 Promise实现
      • 15 实现JSONP方法
      • 16 实现async/await
      • 17 基于Generator函数实现async/await原理
      • 18 实现ES6的const
      • 19 实现一个迭代器生成函数
        • 1 ES6对迭代器的实现
        • 2 实现迭代器生成函数
      • 20 实现ES6的extends
      • 21 实现Object.create
      • 22 实现Object.freeze
      • 23 实现Object.is
      • 24 实现一个compose函数
      • 25 setTimeout与setInterval实现
        • 1 setTimeout 模拟实现 setInterval
        • 2 setInterval 模拟实现 setTimeout
      • 26 实现Node的require方法
      • 27 实现LRU淘汰算法
      • 28 框架相关
        • 1 将虚拟 Dom 转化为真实 Dom
        • 2 实现事件总线结合Vue应用
        • 3 实现一个双向绑定
        • 4 实现一个简易的MVVM
        • 5 实现一个迷你版的vue
        • 6 实现Vue reactive响应式
        • 7 实现模板字符串解析功能
        • 8 实现一下hash路由
        • 9 实现redux中间件
        • 10 实现redux-thunk
      • 29 数组相关
        • 1 实现forEach方法
        • 2 实现filter方法
        • 3 实现find方法
        • 4 实现findIndex方法
        • 5 实现map方法
        • 6 实现reduce方法
        • 7 实现every方法
        • 8 实现some方法
        • 9 实现数组扁平化flat方法
        • 10 实现Array.isArray方法
        • 11 实现Array.of方法
        • 12 数组去重方法汇总
        • 13 对象数组如何去重
        • 14 数组中的数据根据key去重
        • 15 类数组转化为数组的方法
        • 16 reduce用法汇总
      • 30 正则相关
        • 1 实现千位分隔符
        • 2 判断是否是电话号码
        • 3 验证是否是邮箱
        • 4 验证是否是身份证
        • 5 用正则写一个根据name获取cookie中的值的方法
      • 31 函数柯里化相关
        • 1 实现一个JS函数柯里化
        • 2 请实现一个 add 函数,满足以下功能
        • 3 实现 (5).add(3).minus(2) 功能
      • 32 字符串相关
        • 1 查找字符串中出现最多的字符和个数
        • 2 字符串查找
        • 3 字符串最长的不重复子串
      • 33 实现工具函数
        • 1 对象扁平化
        • 2 实现一个管理本地缓存过期的函数
        • 3 实现lodash的chunk方法–数组按指定长度拆分
        • 4 手写深度比较isEqual
        • 5 实现一个JSON.stringify
        • 6 实现一个JSON.parse
        • 7 解析 URL Params 为对象
        • 8 转化为驼峰命名
        • 9 实现一个函数判断数据类型
        • 10 对象数组列表转成树形结构(处理菜单)
        • 11 树形结构转成列表(处理菜单)
      • 34 手写常见排序
        • 1 冒泡排序
        • 2 快速排序
        • 3 选择排序
        • 4 插入排序
        • 5 二分查找
      • 35 算法数据结构
        • 1 实现一个链表结构
        • 2 实现一个队列
        • 3 递归反转链表
        • 4 二叉树搜索
        • 5 二叉树层次遍历
        • 6 二叉树深度遍历
      • 36 综合
        • 1 实现一个 sleep 函数,比如 sleep(1000) 意味着等待1000毫秒
        • 2 给定两个数组,写一个方法来计算它们的交集
        • 3 异步并发数限制
        • 4 异步串行 | 异步并行
        • 5 实现有并行限制的 Promise 调度器
        • 6 图片懒加载
        • 7 实现 getValue/setValue 函数来获取path对应的值
        • 8 创建10个标签,点击的时候弹出来对应的序号
        • 9 版本号排序的方法
        • 10 请实现 DOM2JSON 一个函数,可以把一个 DOM 节点输出 JSON 的格式
        • 11 分片思想解决大数据量渲染问题
        • 12 实现一个add方法完成两个大数相加
        • 13 怎么在制定数据源里面生成一个长度为 n 的不重复随机数组 能有几种方法 时间复杂度多少(字节)
        • 14 查找数组公共前缀(美团)
        • 15 判断括号字符串是否有效(小米)
        • 16 实现一个padStart()或padEnd()的polyfil
        • 17 设计一个方法提取对象中所有value大于2的键值对并返回最新的对象
        • 18 实现一个拖拽
        • 19 基于Promise.all实现Ajax的串行和并行
        • 20 修改嵌套层级很深对象的 key
    • 综合题型
    • 其他问题
    • 设计模式
  • 精选模块