自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 除了composition API,vue3.0文档又带来了什么新东西?

异步组件在大型应用中,我们可能需要将应用分割成小一些的代码块,并且只在需要的时候才从服务器加载一个模块。为了简化,Vue 允许你以一个工厂函数的方式定义你的组件,这个工厂函数会异步解析你的组件定义。Vue 只有在这个组件需要被渲染的时候才会触发该工厂函数,且会把结果缓存起来供未来重渲染。2.0中 我们这么用⬇️const asyncPage = () => import('./NextPage.vue') //return a promiseconst asyncPage = { co.

2020-07-21 11:44:51 1087

原创 vue3.0尝鲜与对比

1.实现数据响应的不同Vue 2.0 使用 Object.defineProperty()实现数据响应Object.observe()被废弃后,Object.defineProperty()成为了大家实现数据劫持的首选。vue递归遍历data中的数据,使用 Object.defineProperty()劫持 getter和setter,在getter中做数据依赖收集处理,在setter中监听数据的变化,并通知订阅当前数据的地方。这么做的问题有:检测不到对象属性的添加和删除:Object.defi

2020-06-15 18:49:53 652

原创 React Fiber学习笔记

何为 Fiber:异步实现不同优先级任务的协调执行对于 React 来说,Fiber 可以从两个角度理解:1.协程把渲染更新过程拆分成多个子任务,每次只做一小部分,做完看是否还有剩余时间,如果有继续下一个任务;如果没有,挂起当前任务,将时间控制权交给主线程,等主线程不忙的时候在继续执行。 这种策略叫做 Cooperative Scheduling(合作式调度),操作系统常用任务调度策略之一。协程(Coroutines)是一种比线程更加轻量级的存在,正如一个进程可以拥有多个线程一样,一个线程可以拥有多

2020-05-26 17:04:39 336

原创 React hooks 学习笔记 - useEffect

概念理解:什么是EffectPure function(纯函数)给一个 function 相同的参数,永远会返回相同的值,并且没有副作用;这个概念拿到 React 中,就是给一个 Pure component 相同的 props, 永远渲染出相同的视图,并且没有其他的副作用;纯组件的好处是,容易监测数据变化、容易测试、提高渲染性能等;副作用(Side Effect)是指一个 functio...

2020-05-08 14:52:41 1262

原创 React hooks 学习笔记 - useState

使用hook的好处:1.可以不再使用class(有状态组件)2.不用考虑复杂的react生命周期钩子函数3.让this的处理变得简单例子普通版本:class Example extends React.Component { constructor(props) { super(props); this.state = { count: 0 };...

2020-05-06 21:03:21 906

原创 从Props源码分析vue组件传值的过程

props一般用来进行组件间传值(父组件->子组件)其中整个过程大致可以分成三个部分:父组件通过绑定属性传值给子组件的props知识点:with()的使用子组件读取props知识点:vue的双向绑定父组件 data 更新时,子组件的props也进行更新知识点:watcher原理示例代码: <div class="a" > <testb :child...

2020-04-30 20:14:45 575

原创 字节跳动 前端实习面经 3技术+1hr

字节跳动 头条 一面 (视频面)55min自我介绍http请求有多少种详细介绍一下option请求跨域如何解决跨域携带cookie简述所有状态码简述闭包vue双项绑定vue组件中传值手写 call bind apply 内部实现tcp和udp区别写函数实现一秒钟输出一个数组一个混this和原型的程序 问输出(详见我的上一篇博客 https://blog.csdn.net/...

2020-03-13 11:18:50 1726

原创 牛客网-剑指offer[编程题]剪绳子 js详解

这个题的意思就是把绳子尽量分成由2和3组成的小部分如果绳子长度为偶数,就全部分为由n*2组成如果绳子长度为奇数,就全部分为由(n-1)2组成+13组成function cutRope(number){ // write code here if(number == 2) return 1; if(number == 3) return 2; if(num...

2020-01-16 11:23:32 311

原创 牛客网-剑指offer[编程题]机器人的运动范围 js详解

这道题跟前一道题一样,也是回溯法,分析题目,我们需要两个全局变量:标志数组(flag)和计数变量(sum);需要一个函数(sumNum)来计算行坐标和列坐标的数位之和;终止条件包括三种情况:越界、重复、行坐标和列坐标的数位之和超过k,然后流程和上一道题相同function movingCount(threshold, rows, cols){ // write code here ...

2020-01-16 11:15:20 234 1

原创 牛客网-剑指offer[编程题]矩阵中的路径 js详解

回溯法按深度优先策略搜索问题的解空间树。首先从根节点出发搜索解空间树,当算法搜索至解空间树的某一节点时,先利用剪枝函数判断该节点是否可行(即能得到问题的解)。如果不可行,则跳过对该节点为根的子树的搜索,逐层向其祖先节点回溯;否则,进入该子树,继续按深度优先策略搜索。回溯法的基本行为是搜索,搜索过程使用剪枝函数来为了避免无效的搜索。剪枝函数包括两类:1. 使用约束函数,剪去不满足约束条件的路径...

2020-01-16 10:58:28 240

原创 牛客网-剑指offer[编程题]滑动窗口的最大值 js详解

也是一道简单题只要算清楚每个数组能容纳几个滑动窗口即可用arr.slice()方法进行划分function maxInWindows(num, size){ if(num == null||size == 0||size == null)return []; var res = []; var arr = []; var type = num.length...

2020-01-16 10:02:25 180

原创 牛客网-剑指offer[编程题]数据流中的中位数 js详解

var arr = [];function Insert(num){ arr.push(num); arr.sort(function (a,b){ return a-b; })}function GetMedian(){ // write code here if(arr.length % 2 == 0){ retu...

2020-01-16 09:57:12 209

原创 牛客网-剑指offer[编程题]二叉搜索树的第k个结点 js详解

二叉搜索树的中序遍历就是节点递增序列function KthNode(root, k){ if(!root) return; var arr = []; inorder(root,arr) return arr[k-1];}function inorder(root,arr) { if(!root) return; ...

2020-01-15 17:57:47 189

原创 牛客网-剑指offer[编程题]序列化二叉树 js详解

先序遍历+先序遍历结果合成var arr = [];function Serialize(pRoot){ // write code here if(pRoot==null){ arr.push('a'); }else{ arr.push(pRoot.val); Serialize(pRoot.left); ...

2020-01-15 16:49:48 148

原创 牛客网-剑指offer[编程题]把二叉树打印成多行 js详解

这个就是树的层次遍历,比上一题加了条件的层次遍历还要简单只有搞清楚了各个数组之间的关系就ok举例:三个数组只有arr中存储节点,其他两个只存储值以下是数组变化:arr = [1];tempArr = [];temp = 1;arr = [];tempArr = [1];arr = [2];arr = [2,3]res = [[1]]tempArr = [];temp...

2020-01-15 15:32:16 137

原创 牛客网-剑指offer[编程题]按之字形顺序打印二叉树 js详解

本质上来说还是树的层次遍历只是加了一个flag用flag来控制是奇数行还是偶数行奇数行正常push偶数行翻转function Print(pRoot){ if(!pRoot){ return []; } var queue = [], result = [], flag=true; queue.push(...

2020-01-15 14:51:02 175

原创 牛客网-剑指offer[编程题]对称的二叉树 js详解

只有左孩子和右孩子值相等,才是对称二叉树递归解决这个问题/* function TreeNode(x) { this.val = x; this.left = null; this.right = null;} */function jude(node1,node2){ if (node1 == null && node2 == null) {...

2020-01-15 12:24:35 127

原创 牛客网-剑指offer[编程题]二叉树的下一个结点 js详解

这个题思路也蛮简单先找根节点找到以后中序遍历,把结果存一个数组然后比对我们要找的值和中序遍历结果,输出下一个值即可/*function TreeLinkNode(x){ this.val = x; this.left = null; this.right = null; this.next = null;}*/ var list = [];funct...

2020-01-15 12:03:07 140

原创 牛客网-剑指offer[编程题]删除链表中重复的结点 js详解

题目中给的链表头结点也有值,我们要先给链表创建一个结点值为null的新头结点设置一个qHead,当前节点的下一个节点不为null且两节点值相同时,qHead向前移动此时分两种情况:①移动了:指向头节点的pHead指向再往前移动一位的qHead,相当于删除中间重复的值②没有移动:说明没有和Phead同值的节点,这时候qHead和pHead都前移,测试下一个节点/*function List...

2020-01-15 10:27:26 150

原创 牛客网-剑指offer[编程题]链表中环的入口结点 js详解

如果链表中环 有n个结点,指针P1在链表上向前移动n步,然后两个指针以相同的速度向前移动。当第二个指针指向环的入口结点时,第一个指针已经围绕着环走了一圈又回到了入口结点。function EntryNodeOfLoop(pHead){ // write code here if(pHead==null || pHead.next==null || pHead.next.ne...

2020-01-14 13:46:15 158

原创 牛客网-剑指offer[编程题]字符流中第一个不重复的字符 js详解

下面的代码:用字母为对象的key来统计,遇到相同的字母对应的value加一,遍历输value为1的字符//Init module if you needlet map = {}function Init(){ // write code here map = {}}//Insert one char from stringstreamfunction Insert...

2020-01-14 12:27:51 182

原创 牛客网-剑指offer[编程题]表示数值的字符串 js详解

^ 和 美元符号框定正则表达式,它指引这个正则表达式对文本中的所有字符都进行匹配。如果省略这些标识,那么只要一个字符串中包含一个数字这个正则表达式就会进行匹配。如果仅包含 ^ ,它将匹配以一个数字开头的字符串。如果仅包含$ ,则匹配以一个数字结尾的字符串。[-+]?正负号后面的 ? 后缀表示这个负号是可选的,表示有0到1个负号或者正号\d*\d的含义和[0-9]一样。它匹配一个数字。后缀...

2020-01-14 12:08:50 142

原创 牛客网-剑指offer[编程题]正则表达式匹配 js详解

1.调用库函数^:从字符串开头进行匹配$:从字符串末尾进行匹配function match(s, pattern){ var reg=new RegExp("^" + pattern + "$"); return reg.test(s);}2.不调用库函数//s, pattern都是字符串function match(s, pattern){ // w...

2020-01-14 11:45:18 134

原创 牛客网-剑指offer[编程题]构建乘积数组 js详解

借用一下牛客大佬的思路:解释下代码,设有数组大小为5。对于第一个for循环第一步:b[0] = 1;第二步:b[1] = b[0] * a[0] = a[0]第三步:b[2] = b[1] * a[1] = a[0] * a[1];第四步:b[3] = b[2] * a[2] = a[0] * a[1] * a[2];第五步:b[4] = b[3] * a[3] = a[0] * a...

2020-01-14 10:46:35 155

原创 牛客网-剑指offer[编程题]数组中重复的数字 js详解

这个题简单 没啥好说的function duplicate(numbers, duplication){ // write code here //这里要特别注意~找到任意重复的一个值并赋值到duplication[0] //函数返回True/False if(numbers.length==1) return false if(num...

2020-01-13 13:17:11 160

原创 牛客网-剑指offer[编程题]把字符串转换成整数 js详解

这道题非常迷估计是19年11月牛客改变了判断样例,凡是在这之前的示例代码基本没有能100%通过的,都是85%有一个样例输入是2147483649,正常情况下会溢出,如果不给它进行判断就不能通过// 第一位是符号位function StrToInt(str) { if (str === undefined || str === '') { return 0; } if...

2020-01-13 12:29:54 219

原创 牛客网-剑指offer[编程题]不用加减乘除做加法 js详解

按位与(&)是查看两个数哪些二进制位都为1,这些都是进位位,结果需左移一位,表示进位后的结果异或(^)是查看两个数哪些二进制位只有一个为1,这些是非进位位,可以直接加、减,结果表示非进位位进行加操作后的结果function Add(num1, num2){ return num2 ? Add(num1^num2, (num1&num2)<<1) : ...

2020-01-13 11:15:16 142

原创 牛客网-剑指offer[编程题]求1+2+3+...+n js详解

递归即可解决function Sum_Solution(n){ var sum = n; sum && (sum+= Sum_Solution(n-1)); return sum; // write code here} 上方代码和下方代码完全等价 对上面&&语句不理解的看下面那个if就可以function Sum...

2020-01-13 10:53:55 205

原创 牛客网-剑指offer[编程题]孩子们的游戏(圆圈中最后剩下的数) js详解

用数学归纳法推导出递推公式:设有n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。令f[i]表示i个人时最后胜利者的编号,则有递推公式:f[1]=0;f[i]=(f[i-1]+m)%i; (i>1)通过递推公式即可求得f[n]。function LastRemaining_Solution(n, m){ // write cod...

2020-01-13 10:44:43 158

原创 牛客网-剑指offer[编程题]扑克牌顺子 js详解

如果没有0 ,lastIndexOf(0)=-1var sorted = numbers.sort((a, b) => {return a-b;})//为从小到大排序function IsContinuous(numbers) { // write code here var sorted = numbers.sort((a, b) => { ...

2020-01-12 13:33:44 293

原创 牛客网-剑指offer[编程题]翻转单词顺序列 js详解

这道题用js就是这么简单,一行代码解决问题!换成c语言估计要写至少二十行我们解释一下这一行代码的精髓:str.split(" ")以空格为界 把字符串转化为字符串数组reverse()以每个字符串为单位 进行字符翻转join(" ")给每个字符串数组中加空格并转化成字符串function ReverseSentence(str){ return str.split("...

2020-01-12 13:20:32 185

原创 牛客网-剑指offer[编程题]左旋转字符串 js详解

这个也是简单题,没啥好说的,注意多种情况即可function LeftRotateString(str, n){ if(str === null||n === null)return []; if(str.length === 0 )return []; if (n === 0)return str; if(n > str.length){ ...

2020-01-12 13:07:37 113

原创 牛客网-剑指offer[编程题]和为S的两个数字 js详解

这道题没啥好说的,暴力穷举即可注意点:判断数组是否存在:array == null;判断数组是否为空:array.length == 0;千万不要混淆成 array.length == null;function FindNumbersWithSum(array, sum){ var arr = []; var res = []; var temp = [];...

2020-01-12 12:55:06 164

原创 牛客网-剑指offer[编程题]和为S的连续正数序列 js详解

本题考查群举法不要把它想太难,我们需要一遍一遍尝试可能的结果使用两个数组,一个存放我们现在要算的一组值arr,一个存储算好的几组值res,我们需要从一开始累加,当累加和等于sum时,我们把它加入res,在总和里减去栈顶的值,并弹出栈,并加下一个数,如果这样还是比sum大那我们就一直弹出栈顶的数,直到总和小于sum时,再往下加下一个数。function FindContinuousSe...

2020-01-12 11:08:07 197

原创 牛客网-剑指offer[编程题]平衡二叉树 js详解

平衡二叉树(Balanced Binary Tree) 具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、Treap、伸展树等。 最小二叉平衡树的节点的公式如下 F(n)=F(n-1)+F(n-2)+1 这个类似于一个递归的数列,可以参考Fibonacci数列,1是根节点,F(n-1)是左...

2020-01-11 21:41:25 163

原创 牛客网-剑指offer[编程题]二叉树的深度 js详解

二叉树的深度优先遍历1.递归方法:function TreeDepth(pRoot){ if(!pRoot) return 0; var left = 1 + TreeDepth(pRoot.left); var right = 1+ TreeDepth(pRoot.right); return Math.max(left,right)}2.非递归方法...

2020-01-11 14:11:03 167

原创 牛客网-剑指offer[编程题]数组中只出现一次的数字 js详解

采用栈的方法应该是这道题最简单的方法了吧排序后遍历数组,先压入栈一个数,如果有相同的数就弹出这个栈顶的数最后栈里剩的就是只出现一次的数了function FindNumsAppearOnce(array){ var arr = array.sort(function(a,b){return a - b}); var stack = [arr[0]]; for(va...

2020-01-11 13:43:33 125

原创 牛客网-剑指offer[编程题]数字在排序数组中出现的次数 js详解

这道题算的上剑指offer上数一数二简单的题了吧两种方法:1.for循环遍历寻找function GetNumberOfK(data, k){ // write code here if(data.length == 0)return 0; var count = 0; for(var a = 0;a < data.length;a++){ ...

2020-01-11 13:09:51 193

原创 牛客网-剑指offer[编程题]两个链表的第一个公共结点 js详解

这道题也讲究一个巧字,钻牛角尖是行不通的两有公共节点的链表如:1 2 4 3 6 78 4 3 6 73是第一个公共节点如果我们让两个链表首尾衔接,有两种形式1 2 4 3 6 7 8 4 3 6 78 4 3 6 7 1 2 4 3 6 7我们发现两个链表长度相同,且公共节点也一个位置,这个时候我们只需要遍历寻找相等节点即可function FindFirstCommon...

2020-01-11 12:58:47 156

原创 牛客网-剑指offer[编程题]数组中的逆序对 js详解

不用尝试双重循环暴力解,会超时的!复杂度太高了我们需要采用二路归并方法二路归并即merge,是将两个有序的序列合并为一个有序的序列,在两个子序列left、right合并过程中,当left中当前元素A小于right中当前元素B时,因为right序列已经有序,所以不用比较,A一定是left、right两个子序列当前剩余元素中最小的元素,这省去了A与B后其他元素比较的操作。对于本题,在两个子序列...

2020-01-10 21:18:02 208

空空如也

空空如也

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

TA关注的人

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