自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 webpack踩坑记录

最近在学习webpack的一些配置,学习的期望就是通过可以通过webpack给html文件中引用的资源例如css、js、img文件加上版本号,避免由于浏览器的缓存造成线上请求的资源依旧是旧版本的东西。首先新建一个webpack的项目(默认大家已经安装node的了)npm init 项目中安装webpacknpm webpack --save-devnpm webpack-cli -...

2019-11-30 17:36:49 214

原创 如何用一个定时器维护多个需要实时更新的效果

场景重现之前在做一个IM的模块,有一个撤回消息后两分钟之内可以重新编辑的功能,项目是用react做的,按照正常的思路,只需传入一个消息撤回的时间markTime,然后用现在时间Date.now()去判断是否已经超时两分钟。然而理想总是美好的,由于没有去出发react的重新渲染机制,即使超时了重新编辑的按钮也不会消失,等到去点击重新编辑按钮再提示已超时的话这个极大的影响用户体验。解决方案...

2019-11-24 13:36:10 309

原创 前端学习笔记(十三)

1.Vue 常用的指令:v-modelv-ifv-elsev-showv-forv-bind----简写: :class=“qq”、:type=“text”v-on----简写: @click=“qq”2.v-model的原理text和textarea元素使用value 属性和 input事件;checkbox 和radio使用checked 属性...

2019-09-15 15:57:21 209

原创 LeetCode49. 字母异位词分组 JavaScript

给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明:所有输入均为小写字母。不考虑答案输出的顺序。答案参考:/** * ...

2019-07-12 20:39:23 273

原创 LeetCode48.旋转图像 JavaScript

给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]...

2019-07-12 15:49:55 158

原创 ant-design-vue中menu菜单无法默认展开的问题

在ant-design-vue的文档中,menu有两个可以传的参数,分别为defaultOpenKeys和openKeys,但在接手做一个项目时,openKeys这个参数前人已经写了,可能是从文档中直接复制demo没有删除掉,我也没去管。等到需要用到这个defaultOpenKeys的时候,想做每次刷新还会再次打开上次打开的菜单的效果,但一直无效,网上也没有查到有类似的情况,后面只能自己去看源...

2019-06-25 16:06:19 14478 3

原创 LeetCode46.全排列 JavaScript

给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]参考:/** * @param {number[]} nums * @return {number[][]} */var permute = functi...

2019-06-16 11:21:04 231

原创 LeetCode44.通配符匹配 JavaScript

给定一个字符串(s) 和一个字符模式(p),实现一个支持 '?'和'*'的通配符匹配。'?' 可以匹配任何单个字符。'*' 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从a-z的小写字母。p 可能为空,且只包含从 a-z的小写字母,以及字符?和*。示例 1:输入:s = "aa"p = "a"输出: false解释:...

2019-06-15 11:00:35 216

原创 LeetCode43.字符串相乘 JavaScript

给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”说明:num1 和 num2 的长度小于110。num1 和 num2 只...

2019-06-14 18:28:20 185

原创 react+react-router+redux+Node.js+socket.io写一个聊天webapp

一、项目预览之前看一个写聊天器的教程,自己也跟着教程做了一遍,由于懒得去找图片和一些图标我就用教程中的素材来做,主要是用了react+react-router+redux+Node.js+socket.io的技术栈,接下来就是项目的预览1.首先在/login下能看到有登录和注册按钮2.点击注册按钮,路由跳到/register,注册一个账号,用户和密码都为LHH,选择“牛人”,点击注册,之后...

2019-05-02 16:36:23 318 1

原创 前端笔试中两道与节点有关的算法题

1.分别用广度优先遍历和深度优先遍历展开下面节点示例var tree = { name: 'root', children: [{ name: 'child1', children: [{ name: 'child1_1', children: [] }, { name: 'ch...

2019-03-13 22:09:44 145

原创 LeetCode42.接雨水 JavaScript

给定n个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1]表示的高度图,在这种情况下,可以接 6个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6答案参考:/** * @param {numb...

2019-03-07 17:21:17 386

原创 排序算法 JavaScript

一、冒泡排序算法介绍:比较相邻的两个元素,如果前一个比后一个大,则交换位置。第一轮把最大的元素放到了最后面。由于每次排序最后一个都是最大的,所以之后按照步骤1排序最后一个元素不用比较。function bubble_sort(arr){ var swap; for(var i=0;i<arr.length-1;i++){ for(var j=0;j<a...

2019-02-18 23:56:47 126

原创 刷前端面经笔记(十二)

1.以下递归函数存在栈溢出的风险,请问如何优化?function factorial(n){ return n*factorial(n-1)}解答:function factorial(n){ if(n === 1) { return 1;}; return n*factorial(n-1)}2.请实现一个计算最大公约数的函数:function great...

2019-02-18 23:13:58 210

原创 LeetCode41.缺失的第一个正数 JavaScript

给定一个未排序的整数数组,找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1答案参考:/** * @param {number[]} nums * @return {number} */var firstMissingPositiv...

2019-02-18 11:41:37 169

原创 LeetCode40.组合总和|| JavaScript

给定一个数组 candidates和一个目标数target ,找出 candidates 中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解集为:[[1, 7...

2019-02-18 11:37:00 151

原创 LeetCode39.组合总和 JavaScript

给定一个无重复元素的数组 candidates和一个目标数 target ,找出 candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [2,3,6,7], target = 7,所求解集为:[[7],[2...

2019-02-18 11:26:13 261

原创 LeetCode38.报数

报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1112112111112211被读作 "one 1" (“一个一”) , 即 11。11 被读作 "two 1s" (“两个一”), 即 21。21 被读作 "one 2", "one 1" (“一个二” , “一个一”) , 即1211。给定一个正整数 n(1 ≤ n ≤ 30),输出...

2019-02-18 11:18:56 107

原创 LeetCode36.有效的数独 JavaScript

判断一个9x9的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字1-9在每一行只能出现一次。数字1-9在每一列只能出现一次。数字 1-9在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例 1:输入:[ ["5","3",".",".","7",".",&q

2019-02-18 11:07:26 146

原创 LeetCode35.搜索插入位置 JavaScript

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0...

2019-02-18 09:18:03 114

原创 LeetCode34.在排序数组中查找元素的第一个和最后一个位置 JavaScript

给定一个按照升序排列的整数数组nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10], ta...

2019-02-17 23:05:16 235

原创 LeetCode31.下一个排列 JavaScript

实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1答案参考:/** * @param {number[...

2019-02-17 22:59:58 126

原创 LeetCode29.两数相除 JavaScript

给定两个整数,被除数 dividend和除数divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数divisor 得到的商。示例 1:输入: dividend = 10, divisor = 3输出: 3示例 2:输入: dividend = 7, divisor = -3输出: -2说明:被除数和除数均为 32 位有符...

2019-02-17 22:55:26 261

原创 LeetCode28.实现strStr() JavaScript

实现strStr() 函数。给定一个 haystack 字符串和一个 needle字符串,在haystack字符串中找出 needle字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “bba”输...

2019-02-17 22:44:40 105

原创 LeetCode27.移除元素 JavaScript

给定一个数组 nums和一个值val,你需要原地移除所有数值等于 val的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2...

2019-02-17 22:36:59 119

原创 LeetCode26.删除排序数组中的重复项

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(1) 额外空间的条件下完成。示例 1:给定数组nums = [1,1,2],函数应该返回新的长度2, 并且原数组 nums的前两个元素被修改为1,2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定nums = [0...

2019-02-17 22:25:33 105

原创 LeetCode22.括号生成 JavaScript

给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]答案参考:/** * @param {numbe

2019-02-17 22:17:44 245

原创 LeetCode21.合并两个有序链表 JavaScript

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4答案参考:/** * Definit

2019-02-17 22:03:31 102

原创 LeetCode20.有效的括号 JavaScript

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输...

2019-02-17 21:56:30 224

原创 LeetCode18.四数之和 JavaScript

给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断nums中是否存在四个元素 a,b,c 和d ,使得 a + b + c + d的值与target相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:[ [-1,...

2019-02-17 21:47:38 136

原创 刷前端面经笔记(十一)

1.栈的压入和弹出输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列5,4,3,2,1或3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。function IsPopOrder(pushV,popV){ if(pushV.len...

2019-02-16 16:45:44 172

原创 刷前端面经笔记(十)

1.数组方法1)join()把数组上午所有元素放入一个字符串。元素通过指定的分隔符进行分隔。该方法只接收一个参数,用作分隔符的字符串,然后返回包含所有数组项的字符串,如果不给join()方法传入任何值,则使用逗号作为分隔符。var a = [1,2,3];console.log(a.join());//'1,2,3'console.log(a.join(' '));//'1 2 3'c...

2019-02-15 22:34:56 159

原创 刷前端面经笔记(八)

1.apply,call,bind有什么区别?三者都可以把一个函数应用到其他对象上,apply,call是直接执行函数调用,bind是绑定,执行需要再次调用。apply和call的区别是apply接受数组作为参数,而call是接受逗号分隔的无限多个参数列表。代码如下:function Person() { } Person.prototype.sayName() { ale...

2019-02-15 22:21:15 133

原创 刷前端面经笔记(九)

1.JavaScript实现二分法查找?二分法查找,也称折半查找,是一种在有序数组中查找特定元素的搜索算法。查找过程可以分为以下步骤:(1)首先,从有序数组的中间的元素开始搜索,如果该元素正好是目标元素(即要查找的元素),则搜索过程结束,否则进行下一步。(2)如果目标元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半区域查找,然后重复第一步的操作。(3)如果某一步数组为空,...

2019-02-12 22:43:13 152

原创 大厂2020届实习生笔试题

编程题:1.输入某年某月某日,判断这一天是这一年的第几天? // 判断是否为闰年 function isRun(a) { return a % 4 == 0 && a % 100 != 0 || a % 400 == 0 } // 判断是这一年的第几天 function daysNum(year,month,day) {...

2019-02-12 11:17:44 1054 1

原创 刷前端面经笔记(八)

1.apply,call,bind有什么区别?三者都可以把一个函数应用到其他对象上,apply,call是直接执行函数调用,bind是绑定,执行需要再次调用。apply和call的区别是apply接受数组作为参数,而call是接受逗号分隔的无限多个参数列表。代码如下:function Person() { } Person.prototype.sayName() { ale...

2019-02-12 10:21:59 157

原创 刷前端面经笔记(七)

1.描述一下渐进增强和优雅降级优雅降级(graceful degradation):一开始就构建站点的完整功能,然后针对浏览器测试和修复。渐进增强(progressive enhancement):一开始只构建站点的最少特性,然后不断针对各浏览器追加功能。2.为什么利用多个域名来请求网络资源会更有效?动静分离请求,使用不同的服务器处理请求,提高效率;突破浏览器的并发限制,同一时间针对同一...

2019-02-11 11:13:33 181

原创 刷前端面经笔记(六)

1.ES6中的let,const,var的区别是什么?var:声明全局常量;let:声明块级常量,即局部常量,定以后可以修改;const:用于声明常量,定义后不能再修改值或者引用值的常量,也具有块级作用域;2.对数组进行去重,es5或者es6方法//es5四种方式://方式一:Array.prototype.unique1 = function() { // 1. 定义数组...

2019-02-10 12:17:59 169

原创 刷前端面经笔记(五)

1.XML和JSON的区别?1)数据体积方面JSON相对于XML来讲,数据的体积小,传递的速度更快些2)数据描述方面JSON和JavaScript交互更加方便,更容易解析处理,更容易交互3)数据描述方面JSON对数据的描述性比XML差4)传输速度方面JSON的速度要远远快于XML2.前端需要注意哪些SEO?合理的title、description、keywords:搜索对着三项...

2019-02-07 23:26:06 170

原创 刷前端面经笔记(四)

1.说说前端中的事件流?事件流描述的是从页面接收事件的顺序,DOM2级事件流包括下面几个阶段。事件捕获阶段处理事件阶段事件冒泡阶段(addEventListener:addEventListener是DOM2级事件新增的指定事件处理程序的操作,这个方法接收3个参数:要处理的事件名,作为事件处理程序的函数和一个布尔值。最后的布尔值如果为true,表示在捕获阶段调用事件处理程序;如果为fal...

2019-02-07 22:54:53 145

空空如也

空空如也

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

TA关注的人

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