自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

原创 反转链表的递归解法与非递归解法

反转链表1. 非递归解法:解题思路:定义三个指针: cur , p1 p2, cur与p1为了完成指针逆指, p2保存下一个应当逆转的节点,防止迷路每次让 p1 的next 指向 cur,实现一次局部反转局部反转完成之后,cur p1和 p2 同时往前移动一个位置循环上述过程,直至 p1到达链表尾部思路图解:代码实现:var reverseList = function(head) { if(!head) return null let cur = null

2020-12-05 13:31:17 190

原创 要不要进来看下数组降维?(数组拍平)

数组可能有多维,有时候我们希望把多维数组降为一维数组,这种情况下用递归的方法进行降维,也可通过ES6的数组原型方法flat进行降维。下面给出相关实现:1、前情提要1. 何为多维数组?[1,2,3] //这是以为数组[1,2,[3,4]] //这是二维…简单来说,就是数组套数组的最高层数[1,[2,4], [4,3,[4,5]]] 这个最高的是套了三层,那就是三维2. 递归须知1、确定递归条件2、确定终止条件2、利用forEach进行递归降维 let tmp = [];fun.

2020-11-18 13:27:43 239

原创 【WebSocket应用解析】看完了还敢说不懂WebSocket吗?

本文始发于我的个人网站:https://www.jianfengke.com/WebSocket是啥Websocket是一个持久化的网络通信协议,可以在单个 TCP 连接上进行全双工通讯,没有了Request和Response的概念,两者地位完全平等,连接一旦建立,客户端和服务端之间实时可以进行双向数据传输.WebSocket跟Http区别与联系HTTP是非持久的协议,客户端想知道服务端的处理进度只能通过不停地使用 Ajax进行轮询或者采用 long poll 的方式来,但是前者对服务器压力大,后

2020-10-16 13:39:14 675 1

原创 一道面试题:还在纠结async/ await、Promise的执行顺序?

当 await 关键字与异步函数一起使用时,它的真正优势就变得明显了 —— 事实上, await 只在异步函数里面才起作用。它可以放在任何异步的,基于 promise 的函数之前。它会暂停代码在该行上,直到 promise 完成,然后返回结果值。在暂停的同时,其他正在等待执行的代码就有机会执行了。 – 摘自MDN题目async function async1() { console.log('async1 start'); await async2(); console.log('asy.

2020-09-13 17:17:48 789 1

原创 算法刷题系列--leetcode -题#160#404#437

近期刷题leetcode-437-路径总和 IIIleetcode-404-左叶子之和leetcode-160-相交链表leetcode-437-路径总和 III题目描述:给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:root = [10,5,-3,3

2020-06-27 13:42:50 256

原创 你们看到都觉得腻的专题--节流防抖实现

可能80%的前端面试都遇到过这问题,也有无数人写了这方面的文章,但是我还想想写,不止是为了记录下,也是想表达下自己的想法概念解释首先说下节流防抖的概念问题吧节流:说白了就是自定义一个时间间隔,让这个方法每隔这个时间就执行一次,其他触发这个方法的均无视。最常见的像scroll这种操作,没必要执行频率那么高,十分影响性能,搞个几百毫秒执行一次就够意思的了,当然具体执行时间间隔还得视业务需求而定防抖:说白了就是你还在操作我就不执行它,等你停下来我才执行。还是拿滚动scroll来说事,你监听了文档的scr

2020-06-22 10:02:26 205

原创 MySQL 8.0 - Client does not support authentication protocol requested by server

使用mysql中出现这个错,记录一下MySQL 8.0 - Client does not support authentication protocol requested by server; consider upgrading MySQL client解决方法:在对应的数据库执行以下语句ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'其中,‘root’ 为用户名,'lo

2020-06-19 16:48:05 218

原创 面试官问你:请实现bind完整功能

由于js中this的存在,bind显得尤其重要,它能够显式强绑定this到某特定环境中,用过react的朋友应该知道bind在代码中出现的频率,在绑定函数方法时常用bind来绑定上下文对象到方法上。因此很多面试中常常能看到实现bind方法的面试题,不了解的同学们还以为是啥高深的问题,实际上理解的bind的几个功能点,写出来是不难的,下面来详细探讨一下啦~~bind具体用法:下面是MDN里对bind的解释:bind() 方法创建一个新的函数,在 bind() 被调用时,这个新函数的 this 被指定为

2020-06-16 10:26:47 301

原创 算法刷题系列--leetcode #415 字符串相加

字符串相加题目描述:给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串 转换为整数形式。例:输入 :“37459670” “4567087”输出 : “42026757”解题思路题目意思就是说拿两个数

2020-06-07 22:03:18 192

原创 给我十分钟,搞定二叉树的遍历!

二叉树定义二叉树是一种树形结构(感觉是废话),它有如下特点:每个节点最多只有两棵子树,即不存在度大于2的节点(度就是树结点的直接子结点数)二叉树的子树有左右之分,其次序不能任意颠倒二叉树有什么用?那用处可就大了,就拿我们前端熟悉的来说,抽象语法树(BST)听过吧,babel在编译的时候构建的BST就是一棵二叉树,vue里面的diff,虚拟dom听过吧,这些都离不开二叉树。二叉树的威力远不止如此,利用二叉树前序遍历显示目录结构,利用二叉树中序遍历实现表达式树,在编译器里十分有用,利用二叉树后续遍

2020-06-01 00:13:05 294

原创 程序员都应该知道的文件权限

伙伴们,平时我们在linux上查看文件,例如执行ls-l查看文件:[root@bogon data]# ls -l总用量 8drwxr-xr-x 5 root root 114 5月 20 11:48 51la-dwzdrwxr-xr-x. 9 root root 148 5月 19 11:06 appdrwxr-xr-x 4 root root 48 2月 19 15:45 design-rwxrwxrwx 1 root root 365 5月 28 1

2020-05-30 12:24:36 321

原创 听说你定义了text-overflow: ellipsis 没生效?

朋友们有没有试过这种情况?overflow: hidden;text-overflow: ellipsis;white-space: nowrap;一口气三连后没看到有省略号出现?然后开始胡乱该碰运气期待能生效?现在将会给出准确无疑得解决方法,走起我们首先要知道:text-overflow:ellipsis;这个属性,只会在以下条件均成立时才生效:包裹文字的容器一定要有确定的宽度,有确定单位宽度,如100px, 而要注意的是百分比单位(%)无效,很多人都是因为给容器定了百分比宽度而导致te

2020-05-24 00:38:50 3944 4

原创 css import 使用 webpack 配置的alias 相对路径

问题背景webpack中定义alias相信很多人都知道,在引入文件的时候比较方便不需要写冗长的引用地址,在webpack里定义这个: resolve: { alias: { '@': path.resolve(__dirname, 'src/') } }则引入文件时 @ 则表示src目录然后在使用import导入css文件时,使用alias`定义的地址简写却出现问题* -!../../../node_modules/css-loader/dist/

2020-05-15 15:37:37 841

原创 vue-cli与nuxt在客户端中应用环境变量

小伙伴们在业务中肯定或多或少用的项目变量(像这种process.env.NODE_ENV),我么可以根据环境变量来区分开发环境以及进行一系列判断操作,玩意但要知道process是node存在的环境对象,在客户端是不存在这玩意的,那万一我想在例如.vue等客户端文件用呢咋办,别急,vue-cli跟nuxt这些都给我们提供了个好方法:vue-cli客户端应用环境变量以下是摘自官网的介绍:这么说...

2020-04-30 16:27:19 732

原创 你知道 !function () {}() 啥意思吗

童鞋们,你们是否有时候会看到函数前面加个!号的情况呢,你是否有疑问这!号是干啥的? 非 的意思? 不不不,如果你也有同样的疑惑我建议你来看看首先你看下面这个:function foo() {}这只是一个函数声明。您将需要一个调用foo来运行该函数运行该函数(好像是句废话)现在,当我们添加看似无害的感叹号:!function foo(){}时,它将变成一个表达式。现在它是一个函数表达式。...

2020-04-29 22:48:13 478

原创 git本地分支与远程分支建立连接

在我们多人协作使用git过程中可能出现如下情景:倘若项目仓库有多个分支,我在本地切换到另外一个分支,在执行git pull拉取分支内容时git会提示:git branch --set-upstream-to=origin/<branch> xxxxxxxx为当前本地分支名实际上就是git提示你要本地分支与远程分支建立连接才能直接执行git pull拉取项目。如:我现在切到...

2020-04-27 23:13:13 4619

原创 看完这篇文章再搞不懂path.resolve请捶我

曾经我有一段时间,那时我懵懂刚学前端那会,看到人家项目里很多地方用path.resolve, path.join的地方,其实path.join还算比较直观的,单纯连接路径,规范化路径(什么叫规范化?就是让把这个变成路径的样式,path.join(‘a’, ‘b’)原本路径就是ab的,这样不妥啊,所以规范化之后是a/b啦)。好了说回path.resolve, 很多时候看到这个拼接返回的路径都是奇奇怪...

2020-04-27 01:31:12 304

原创 Js文件遍历

文件遍历可谓是比较高频的应用场景,给定一个文件夹,把里面的所以文件遍历出来然后进行其他操作。例如打包后把dist文件夹的静态资源上传到cdn,查询某个文件夹是否存在名为xxx的文件等等。这里介绍的是利用递归的遍历:const getFiles = filePath => { let files = [] //遍历的文件全push进这个数组,方便后续操作(记住,push进去的是文件路径,...

2020-04-26 22:59:42 3016 3

原创 vue过滤器

Vue提供数据过滤功能,使用也非常简单, 只需要在options下的 filters 下定义好filter函数便可使用,过滤器可以用在两个地方:双花括号插值加粗样式和 v-bind 表达式 (后者从 2.1.0+ 开始支持)。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号指示:使用示例;<!-- 在双花括号中 --> {{ message | cap...

2020-02-18 13:01:58 120

原创 Client does not support authentication protocol requested by server; consider upgrading MySQL client

问题背景最近做博客后台,数据库选用mysql,用node稍微封装了一下就想跑来看看,启动发现报错了:原因经研究,出现上述问题的原因是:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 即用户的认证规则不一致,这里又要扯到mysql的认证方式了,这里有一篇说的比较明白的:https...

2020-02-01 23:54:03 133

原创 vue-element-ui 中 form resetFields并没有清空表单

问题背景vue-element-ui 中 form中有个清空表单的方法,即假如给表单一个ref='form', 则清空表单的方法为this.$refs['form'].resetFields()可当我在dialog组件中用这个方法的时候,这就出现问题了,居然清空不了~~~~~问题所在问题的本质是因为你编辑时,第一次打开dialog的时候给表单绑定的form赋值了,这时候这个form的初始值...

2019-12-26 15:26:19 2325 2

原创 解决react组件提示 Useless constructor no-useless-constructor 的问题

刚开始学react, 写了个组件硬是报了Useless constructor no-useless-constructor 字面上意思就是无用的构造器的意思我细细查阅了一番,原来react组件的construtor里面都必须要定义state呀~~~~ 我以为没有state就不用写了呢加上state,问题解决~~~~...

2019-12-22 11:41:46 999

原创 Error: Content placeholder not found in template

最近鼓捣vue ssr,一开始就遇到个问题1、如要往一个html渲染内容,那就要在文档里放个占位符,不然人家咋知道必要插在哪里例如有个这东西: app想把内容渲染进body里面,那要在放一个标志位,就是 <!--vue-ssr-outlet-->一开始没加这个直接爆错Error: Content placeholder not found in ...

2019-12-02 11:28:31 1782 3

原创 git撤销commit ,并且保留修改

问题背景在多人协作开发的项目中,一般都是从master中新建一个分支进行修改开发,完了就提交、合并、删除分支。可很多时候就是不长记性,分支也不建直接在master上开干,做完之后一顿操作梦如虎,git status -> git add . -> git commit -m ‘’ 一气呵成,当正要提交的时候,瞄了一下编辑器左下角,吗惹,怎么还在master分支上,凉凉~~~~~~~...

2019-11-25 19:13:09 6479

原创 解决npm安装报错问题: MSBUILD : error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”

问题背景拉取项目代码,首先自然是npm install, 安装到一半给我报这个:简直看的我一脸懵逼,去搜了一下,原来是缺少了window构建工具(所以这是个啥???)不管了,安装了再说:解决办法以管理员身份打开终端命令行工具:一行代码:npm install --global --production windows-build-tools注意:存储空间要预留够,不然会安装失败...

2019-11-04 15:31:30 2450

原创 node爬取图片并保存到本地(重要是保存)

最近有个想法是抓取批量的验证码图片来做个验证码识别功能,所以想用node写个抓取图片的小脚本,看上去简单,问题还真不少直接上经过探索之后可行的代码,ajax请求这块用了axios,因为习惯const axios = require('axios')const fs = require('fs')fs.readdir('./', (err, files) => { //创建本地文件...

2019-10-29 09:43:01 3362

原创 NPM包发布时报错code E401

写了个eslint插件想发布到npm上,执行npm publish,报错了:原因是没登录npm,其实原因很简单,想发布个东西总得让人家知道你是谁吧,好的,现在解决问题只需要两步。步骤一:从淘宝源切到npm源, 记得之后要切回淘宝源npm install -g nrm或者用这个方法:npm config set registry=http://registry.npmjs.org ...

2019-10-14 02:03:07 7338

原创 正则检验输入只能是数字或小写字母

很入门级的东西,但还是比较实用,经常用得到,如表单校验经常会规定输入只能是某一特定类型内容,如只能是数字或小写字母,可以这样写:var reg = /^[0-9a-z]*$/大家可以举一反三呀呀呀呀~~~...

2019-09-20 00:23:25 1807 2

原创 Charles mock数据时出现404报错的解决方法

背景最近在学react,尝试用Charles来模拟后台数据,这样也省的又去编写后台,对于前后端分离中对于我们前端mock数据比较方便。但用的时候却出错辽~~~~问题按照一些教程,我下载完Charles后事是这样配置的:点击Tools下的map local setting,然后配置如下:local path是映射到本地的文件的路径,即我们需要mock的数据就放在该路径下那理论上本地想访...

2019-09-09 00:07:19 2119

原创 div等非input 元素实现placeholder效果

代码html <div class="ques_edit" contenteditable="true" >css.ques_edit { width: 580px; height: 165px; margin:30px auto 20px; background: #eef4fe; text-...

2019-08-30 10:59:20 313

原创 关于vue-router全局前置守卫中beforeEach()里的代码循环执行的问题

问题背景几乎有登陆功能的站点都会有这一种流程: 用户想评论,点赞等有用户信息的行为站点如果检测到用户还没登陆,就会跳到登陆页进行登陆。而vue-Router中的全局前置守卫可谓十分适宜做这个功能,即beforeEach()钩子函数。按着这理解,我写下了以下代码;import Vue from 'vue'import Router from 'vue-router'import QuiArr...

2019-08-26 00:50:18 4583

原创 vue里的$attrs

$attrs官网介绍关于$attrs, vue官网如是介绍:包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class 和 style 除外)。当一个组件没有声明任何 prop时,这里会包含所有父作用域的绑定 (class 和 style 除外),并且可以通过 v-bind="$attrs"传入内部组件——在创建高级别的组件时非常有用。$attrs大白话介绍attr...

2019-08-22 02:29:23 4590 3

原创 inquirer.js -- 命令行交互工具

背景在一次需求中,要求利用命令行批量选择要打包的目录名称,于是乎我认识了inquirer.js, 极为友好及便捷的用户与命令行交互工具。inquirer.js主要功能有:提供错误反馈问问题解析输入验证答案管理分层提示安装npm install inquirer基本使用var inquirer = require('inquirer');inquirer .prom...

2019-08-18 02:45:02 994

原创 flutter RangeError (index): Invalid value: Only valid value is 0: 1#0

问题背景:1、用node在本地启动了个服务监听端口30002、手机用android studio abd WiFi插件连接手机,即电脑与手机在同一局域网环境下3、查询电脑ipv4地址,为 192.168.191.24、在dart文件里这样写: var url_ = "192.168.191.2:3000/v1/classic/latest"; Response response =...

2019-08-13 00:00:03 8293 2

原创 git拉取指定分支到本地

假设事先已拉取主分支创建本地分支git branch + 分支名称切换到分支git checkout + 分支名 拉取分支代码git pull origin + 分支名称

2019-08-08 01:32:08 1386

原创 flutter笔记

1、flutter包管理依赖包及相关配置在pubspec.yaml文件里,YAML是一种直观、可读性高并且易于阅读的文件格式想要安装flutter依赖包,首先在pubspec.yaml里面添加依赖包名称及版本号,然后执行命令:flutter packages get 这样就把依赖包安装好了...

2019-08-06 09:19:07 113

原创 轻量的处理时间和日期的js库 -- day.js

day.js - - - 一个轻量的处理时间和日期的 JavaScript 库很多时候,我们会遇到各种需求把时间处理成不同形式,这时候如果自己编写js处理,可能效率有点慢,不妨用下这个库安装npm install dayjs --save引入 // CommonJS var dayjs = require('dayjs'); //ES6 import dayjs fro...

2019-07-22 16:45:36 307

原创 打包react报错:Uncaught Invariant Violation: Minified React error #200;

问题在学习react时,尝试打包react的jsx语法文件,但报错了,如下:Uncaught Invariant Violation: Minified React error #200; visit https://reactjs.org/docs/error-decoder.html?invariant=200 for the full message or use the non-m...

2019-07-20 01:03:42 4654 1

原创 防止文件上传重复算法

需求背景最近有个需求是这样的~~~公司某个平台有上传素材功能,,很多时候会上传重复素材,这样一来就带来不少问题,比较严重的就是浪费存储空间以及使素材库过于臃肿不利于查找,需求很自然的提了出来,在上传素材时判断该素材是否已经在数据库中,即使名字不一样。恰好看到七牛云公布的哈希算法,感觉尚可,那就拿来一用,各部分功能已添加注释代码// 计算文件的eTag,参数为buffer或者readable...

2019-07-15 18:24:26 1360

原创 koa路由模块

koa路由使用基本步骤var Koa = require('koa');var Router = require('koa-router');var app = new Koa(); //实例化koavar router = new Router(); //实例化路由router.get('/', (ctx, next) => { //编写接口 // ctx.router a...

2019-07-13 22:59:48 178

空空如也

空空如也

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

TA关注的人

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