- 博客(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
原创 vue3响应式原理实现
Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。问题2:使用WeakMap存放多个对象,WeakMap的key即为每个对象,value为对象所对应的map结构,如下代码,我们创建了一个代理对象,并拦截了get与set操作,同时使用Reflect中的静态方法来操作对象;上面则是对Proxy的基本用法,创建了一个代理对象,对空对象进行了拦截,重定义了属性的读取(2、当有多个对象的情况,如何存放;
2023-06-01 17:11:53
260
原创 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
原创 基于element-ui树形穿梭框
最近写项目,遇到了需要使用树形结构并且是穿梭框的场景,为了避免以后遇到相同的场景而出现没必要的工作量,编写了一款组件;文档地址:ele-tree-transfer - npm
2022-01-06 17:31:53
3207
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人