自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 模拟async函数

通过不断的.then拿到结果,又将结果传递给next函数,再通过变量获取结果将结果传递给了下一次的请求,这样就实现了异步函数。但是这里的调用还需要自己每次手动编写,于是再一步优化!前言:异步函数(async、await),在如今开发中广泛使用,今天我们通过使用生成器(Generator),模拟异步函数,看下异步函数究竟是如何实现的。编写一个函数,传入生成器函数,使生成器函数自动执行,不需要每次手动。1、创建Generator函数。

2023-09-21 17:16:55 117

原创 JS算法系列-每日一题(数组子集)

回溯算法定义:回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。当取出1时:子集为[1],剩余数字2和3,再下次递归时,则需要从2开始取出,取2则为[1,2],以此类推。输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]输入:nums = [1,2,2]

2023-09-19 16:21:36 113

原创 JS算法系列-每日一题(移除元素)

例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。解释:函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。解题思路:要求原地移除数组中的元素,可以想到使用数组的splice方法,我们只需要循环数组,去除其中值等于val的元素即可。输入:nums = [0,1,2,2,3,0,4,2], val = 2。元素的顺序可以改变。输入:nums = [3,2,2,3], val = 3。

2023-09-15 14:49:38 110

原创 JS算法系列-每日一题(无重复字符的最长子串)

请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。输入: s = "abcabcbb"输入: s = "pwwkew"输入: s = "bbbbb"

2023-09-13 21:20:04 522

原创 【es6系列】手写Promise

前言:Promise作为解决异步问题的一种方案,成功替代了以往的callback回调函数,在而今的开发中广泛使用,但是它的实现原理更需要掌握。Promise状态一旦确定,变为fulfilled或rejected后,将不可更改;抱着这样的思路,我们将实现一个基础功能的Promise。fulfilled:成功。rejected:失败。实现细节下次补充~~~

2023-09-08 17:33:16 65

原创 JS算法系列-每日一题(合并两个有序数组)

注意,因为 m = 0 ,所以 nums1 中没有元素。nums1 中仅存的 0 仅仅是为了确保合并结果可以顺利存放到 nums1 中。,5,6] ,其中斜体加粗标注的为 nums1 中的元素。最终,合并后数组不应由函数返回,而是存储在数组。需要合并 [1,2,3] 和 [2,5,6]。需要合并的数组是 [] 和 [1]。个元素表示应合并的元素,后。需要合并 [1] 和 []。中,使合并后的数组同样按。合并结果是 [1]。合并结果是 [1]。题解2:截取添加+排序。

2023-09-07 14:33:13 47

原创 JS算法系列-每日一题(困于环中的机器人)

JavaScript算法

2023-09-05 16:38:56 63

原创 vue3响应式原理实现

Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。问题2:使用WeakMap存放多个对象,WeakMap的key即为每个对象,value为对象所对应的map结构,如下代码,我们创建了一个代理对象,并拦截了get与set操作,同时使用Reflect中的静态方法来操作对象;上面则是对Proxy的基本用法,创建了一个代理对象,对空对象进行了拦截,重定义了属性的读取(2、当有多个对象的情况,如何存放;

2023-06-01 17:11:53 260

原创 详解JS中call、apply、bind函数的实现原理

JavaScript

2023-05-19 17:36:46 173

原创 vue中实现虚拟列表

Vue中实现虚拟列表

2023-03-08 14:40:09 2365

原创 vue中点击其他区域,关闭当前弹窗

vue中点击其他区域,关闭当前弹窗

2022-07-12 11:42:03 5908

原创 css 实现三维立体旋转效果

css实现三维立体旋转效果

2022-04-28 16:09:06 4872

原创 HTTP缓存

HTTP缓存

2022-03-08 12:57:25 1078

原创 前端实现图片压缩

前端实现图片压缩

2022-02-15 17:11:43 8666

原创 vite import.meta.globEager实现自动化引入

import.meta.globEager实现自动化引入

2022-01-12 15:10:08 7963

原创 vue3页面权限以及按钮权限

最近再写一个vue3项目中,需要涉及页面以及按钮权限,在此做一个简单的记录。一、页面权限:有两种方案可以实现(本文采用的第二种方式):1、匹配角色路由后,通过vue-router中的addRoutes方法添加。2、在sidebar组件中使用工具函数,通过meta中定义的code与后端返回的codeList做对比,没有则隐藏菜单。sidebar.vue<template> <div :class="{ 'has-logo': showLogo }">

2022-01-09 18:46:13 2857

转载 前端webSocket基础配置

1、JS<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <tit

2022-01-09 18:18:56 1885

原创 webpack require.context 全局组件注册

全局注册公共组件与baseui:

2022-01-07 13:16:26 468

原创 基于element-ui树形穿梭框

最近写项目,遇到了需要使用树形结构并且是穿梭框的场景,为了避免以后遇到相同的场景而出现没必要的工作量,编写了一款组件;文档地址:ele-tree-transfer - npm

2022-01-06 17:31:53 3207 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除