北海~天空
码龄5年
关注
提问 私信
  • 博客:13,939
    社区:211
    问答:54
    动态:2
    14,206
    总访问量
  • 62
    原创
  • 1,315,209
    排名
  • 44
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2019-10-21
博客简介:

weixin_45778415的博客

查看详细资料
个人成就
  • 获得146次点赞
  • 内容获得8次评论
  • 获得80次收藏
创作历程
  • 1篇
    2022年
  • 60篇
    2021年
  • 1篇
    2020年
成就勋章
TA的专栏
  • 笔记
    5篇
兴趣领域 设置
  • 前端
    javascriptcssvue.jsreact.jses6webpackxhtml前端框架
  • 后端
    node.js
  • 移动开发
    flutter
  • 网络与通信
    https
  • 微软技术
    typescript
  • 学习和成长
    面试
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

请问延时1000毫秒的代码怎么写??

答:

settimeout 设置一千毫秒的延迟

回答问题 2022.06.09

实现一个基本功能的diff算法(包含注释讲解)

为啥突然写diff算法 整天背八股文,背React对老diff算法的三种优化,突然心血来潮想要不自己去试试看diff算法,本质上还是一个深度优先遍历,说干就干查了一些资料和视频之后我就开始动手写了(下文中部分代码借鉴了·codeXiu·大佬)。 虚拟dom 首先创建两个虚拟Dom树 let newTree = createElement("div", {class: "a"}, [ createElement("div", {class: "b"}, ["dlz"])
原创
发布博客 2022.04.18 ·
1432 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

v-for写了三个按钮,怎么判断点击的是哪个按钮

答:

vue底层帮你弄好了,你点击哪个就会输出哪个的index

回答问题 2022.03.06

js线程运行机制,与从底层理解为什么我们要在异步任务里面写回调函数

js线程,回调函数
原创
发布博客 2021.12.08 ·
885 阅读 ·
7 点赞 ·
0 评论 ·
3 收藏

js中几种判断数据类型的方法原理及难点(通俗易懂)

看这篇博客前确保你了解了原型与原型链的知识,原理大多涉及到了原型与原型链的知识。 可看我这篇博客了解原型与原型链 js高级之原型与原型链 1.Object.prototype.toString.call/apply() 结论 首先抛出结论:带着结论我们来理解这个方法 object.prototype.toString.call()方法其实是利用 Object.prototype.toString()方法可以返回“[obejct 对象构造函数名]” 的原理来确定数据类型,并且js中所有对象都是Objec.
原创
发布博客 2021.10.30 ·
645 阅读 ·
10 点赞 ·
0 评论 ·
1 收藏

js实现深拷贝与浅拷贝

思路 a.基本类型–名值存储在栈内存中,例如let a=1; 当你b=a复制时,栈内存会新开辟一个内存: 所以当你此时修改a=2,对b并不会造成影响,因为此时的b已自食其力,翅膀硬了,不受a的影响了。当然,let a=1,b=a;虽然b不受a影响,但这也算不上深拷贝,因为深拷贝本身只针对较为复杂的object类型数据。 b.引用数据类型–名存在栈内存中,值存在于堆内存中,但是栈内存会提供一个引用的地址指向堆内存中的值: 当b=a进行拷贝时,其实复制的是a的引用地址,而并非堆里面的值。 而当我们a[0]=1时
原创
发布博客 2021.09.15 ·
142 阅读 ·
5 点赞 ·
0 评论 ·
0 收藏

剑指 Offer(50)——二叉搜索树的最近公共祖先

题目 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5] 示例 1: 输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8 输出: 6 解释: 节点
原创
发布博客 2021.08.27 ·
134 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

剑指 Offer(49)——I. 翻转单词顺序

题目 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。 代码 var reverseWords = function(s) { let arr=s.split(" ") let str=[]; arr.forEach((item)=>{ if(item){ str.unshift(item)
原创
发布博客 2021.08.26 ·
101 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

剑指 Offer (48) —— I. 数组中数字出现的次数

题目 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 示例 1: 输入:nums = [4,1,4,6] 输出:[1,6] 或 [6,1] 示例 2: 输入:nums = [1,2,10,4,1,4,3,3] 输出:[2,10] 或 [10,2] 代码 var singleNumbers = function(nums) { if(!nums) return null let m = new
原创
发布博客 2021.08.25 ·
92 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

剑指offer(47)——二叉树的遍历

重点:回溯是执行该调用之后的代码,而不是其他全部代码 中序遍历 var inorderTraversal = function(root) { var res = []; function dfs(root) { if(!root) return null dfs(root.left) res.push(root.val) dfs(root.right) } dfs(root) return res;
原创
发布博客 2021.08.24 ·
83 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

剑指 Offer(46) —— I. 二叉树的深度

题目 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回它的最大深度 3 。 思路 maxDepth(root.left)回溯一次就自带加一, 代码 var maxDepth = function(root) { if(!root) { return null; }
原创
发布博客 2021.08.23 ·
80 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

剑指 Offer(45) ——0~n-1中缺失的数字

题目 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 示例 1: 输入: [0,1,3] 输出: 2 示例 2: 输入: [0,1,2,3,4,5,6,7,9] 输出: 8 代码 var missingNumber = function (nums) { var len = nums.length for (var i = 0; i < len; i++) { if
原创
发布博客 2021.08.22 ·
77 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

剑指 Offer(44)——从上到下打印二叉树 III

题目 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回其层次遍历结果: [ [3], [20,9], [15,7] ] 思路 在上一题的基础上将最后结果反转 代码 var levelOrder = function(root) { let queue = [], res = [
原创
发布博客 2021.08.21 ·
93 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

剑指 Offer(43)——从上到下打印二叉树 II

题目 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] 代码 var levelOrder = function(root) { let queue = [], res = []; queue.push(root); while(queue[0]){ le
原创
发布博客 2021.08.20 ·
95 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

剑指 Offer(42)——构建乘积数组

题目 给定一个数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B[i] 的值是数组 A 中除了下标 i 以外的元素的积, 即 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。 示例: 输入: [1,2,3,4,5] 输出: [120,60,40,30,24] 思路 分成两部分计算,然后再相乘 代码 var constructArr = function(a) { if(!Array.isArray(a) || !a.len
原创
发布博客 2021.08.19 ·
89 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

剑指 Offer(41)——不用加减乘除做加法

题目 写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。 思路 ^ 亦或 ----相当于 无进位的求和, 想象10进制下的模拟情况:(如:19+1=20;无进位求和就是10,而非20;因为它不管进位情况) & 与 ----相当于求每位的进位数, 先看定义:1&1=1;1&0=0;0&0=0;即都为1的时候才为1,正好可以模拟进位数的情况,还是想象10进制下模拟情况:(9+1=10,如果是用&的思路来处理,则9+1得到的进
原创
发布博客 2021.08.18 ·
84 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

ES6中的async+await(通俗易懂版)

1:async如何使用和它的背后原理? 1.javascript 作为一个关键字放在函数前面,用来表示该函数是异步的。且背后原理就是promise async function fn1() { return '你好dlz' } function fn2() { return new Promise((res,rej)=>{ res('你好zjx') }) } console.log(fn1())//Promise { '你好dlz' } console.
原创
发布博客 2021.08.17 ·
2950 阅读 ·
19 点赞 ·
1 评论 ·
69 收藏

剑指 Offer(40)——求1+2+…+n

题目 求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 示例 1: 输入: n = 3 输出: 6 示例 2: 输入: n = 9 输出: 45 思路 if(A && B) // 若 A 为 false ,则 B 的判断不会执行(即短路),直接判定 A && B 为 false if(A || B) // 若 A 为 true ,则 B 的判断不会执行(即短路),直接判定 A || B
原创
发布博客 2021.08.17 ·
96 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

剑指 Offer(39)——股票的最大利润

题目 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。 示例 2: 输入: [7,6,4,3,1] 输出: 0 解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。 思路 动态规划解 代码 var max
原创
发布博客 2021.08.16 ·
120 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

剑指offer(38)——圆圈中最后剩下的数字

题目 0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。 例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。 示例 1: 输入: n = 5, m = 3 输出: 3 示例 2: 输入: n = 10, m = 17 输出: 2 代码 var lastRemaining = function(n, m) {
原创
发布博客 2021.08.15 ·
99 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏
加载更多