自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Pan Fengshan的博客

前端小白成长历程

  • 博客(135)
  • 资源 (2)
  • 问答 (8)
  • 收藏
  • 关注

原创 git回退代码到指定提交

一、回退代码1.回退到上个版本git reset --hard HEAD^2.回退到前2次提交之前,以此类推,回退到n次提交之前git reset --hard HEAD~23.退到/进到 指定commit的sha码git reset --hard commit_id二、强推到远程git push origin HEAD --force...

2020-06-17 18:27:55 943

原创 微信小程序自定义组件boundingClientRect取不到值

一、问题场景有些场景下,我们需要在小程序自定义组件中获取某些元素的高度,代码如下:ready: function() { wx.createSelectorQuery().select('.search-content').boundingClientRect(rect=>{ console.log(rect.height) }).exec();}...

2020-03-17 14:29:40 12275 3

原创 转义unicode编码

有的时候服务端数据库是GBK格式,我们存过去的汉字,有些会被转义,比如 龚 ==》䶮有些场景我们需要显示正确转义后的文本,可以进行如下处理:/** * 解析段落的unicode字符,如 䶮 */function decodeUnicode(str) { //替换 & 为 & let ret = s...

2020-03-17 14:21:35 1328

原创 最短路径之迪杰斯特拉(Dijkstra)算法

定义迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。迪杰斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。如图所示,我们要求解V0到V8的最小权值及最短路径,这是我们经常碰到的求最小路径问题之一。通过一步就将最短权值和路径求出是不现实的,不过我...

2019-11-11 19:40:03 833 1

原创 vue-cli3项目vue.config.js配置优化

vue-cli3项目vue.config.js配置欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导...

2019-08-20 14:36:49 13174 7

原创 函数防抖与函数节流

一、函数防抖定义当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定的时间到来之前,又一次触发了事件,就重新开始延时应用场景在实现根据用户输入实时搜索时,我们可以给搜索方法加个防抖,即在用户持续输入过程中,防抖函数起作用,不会向后台频繁发请求,只有用户中断输入(关键词输入完毕)再进行搜索代码实现function debounce(func,time=17,o...

2019-07-03 14:43:33 211

原创 JavaScript深拷贝

注意事项1.如果是基本数据类型,直接返回2.如果是 RegExp 或者 Date 类型,返回对应类型3.如果是复杂数据类型,递归。4.考虑循环引用的问题代码实现//WeakMap解决循环引用问题function deepClone(source,hash=new WeakMap()){ if(source instanceof RegExp) return new RegEx...

2019-07-02 09:43:46 516

原创 JS运算避免精度失真

前言在做项目过程中,经常碰到需要进行计算的地方,必须单价,重量,高度等运算,有时会出现精度失真或者小数位很多的问题示例解决思路通过将运算的两个数放大相应的倍数,将其变为整数进行运算,然后将结果再除以放大的倍数即可。具体实现1.加法function numAdd(num1: number, num2: number): number{ let baseNum: number,...

2019-06-24 16:06:17 4645 1

原创 JavaScript播放文字语音

背景:在项目碰到一个需求,产品要求将提示文字同事用语音播放出来实现:此处用到了百度提供的一个文字转语音接口代码:function playAudio(text){ const url = "http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&text=" + encodeURI(text); ...

2019-06-11 15:15:06 2367 1

原创 JavaScript闭包实际场景应用

一、 闭包的定义能访问其他函数内变量的函数,这种结构就是闭包二、闭包的用途1.读取函数内部的变量2.让这些变量的值始终保持在内存中(结果缓存)3.创建匿名自执行函数(避免全局变量的污染)三、闭包的弊端1.使用不当会很容易造成内存泄露2.常驻内存,增加内存使用量四、实际应用接下来举一些实际工作中用到的闭包示例1.自定义Alert弹框,该弹框只会被new一次,用的就是闭包mod...

2019-06-11 14:45:46 1894

原创 寄生组合式继承

寄生组合式继承定义:所谓寄生组合式继承,即通过借用构造函数来继承属性,通过原型链的混成形式来继承方法。其背后的基本思路是:不必为了指定子类型的原型而调用超类型的构造函数,我们所需要的无非就是超类型原型的一个副本而已。本质上,就是使用寄生式继承来继承超类型的原型,然后再将结果指定给子类型的原型。(引自《JavaScript高级程序设计》)1.定义父类型function Person(name)...

2019-06-11 10:03:10 6943

原创 Promise实现

实现Promise功能代码如下:var Promise = (function() { function Promise() { this.callbacks = []; } Promise.prototype = { constructor: Promise, resolve: function(result) { this.complete('resolve', ...

2019-06-06 10:35:03 239

原创 JS判断浏览器类型及版本

判断浏览器类型及版本function getBroswer(){ var os = navigator.platform; var userAgent = navigator.userAgent; var info = ""; var tempArray = ""; //判断浏览器版本 var isOpera = userAgent.indexOf("Opera") &...

2019-06-03 17:06:54 1053 1

原创 求数组中两个数的和等于给定数的所有组合

1.给定一个排好序的数组2.给定一个数求:数组中的两个数相加等于这个给定的数,求出所有组合分析要求出所有组合,必定要遍历到每个元素,所以最好的时间复杂度就是O(n),采用鸡尾酒算法,两头逼近,可求出所有组合function findTarget(arr, num){ var i=0, j=arr.length -1; var result = []; while(i<j){...

2019-05-31 15:12:11 1146

原创 网页聚焦时被键盘推上去下不来了

问题描述:页面输入框聚焦时,网页被键盘推上去了,但是失去焦点时页面停在原地没有下来,在微信浏览器及搜狗浏览器都有这个问题,苹果自带的Safari浏览器没有这个问题问题如下图解决办法:在输入框失去焦点的时候,将scrollTop设为0即可document.body.scrollTop = 0;...

2019-04-12 13:55:08 901

原创 详解HTTP的缓存机制与原理

概述缓存的重要性不言而喻,通过网络请求资源缓慢并且降低了客户端的用户体验,增添了服务端的负担。很多短期之内不会经常发生变化的资源文件没必要每次访问都想服务端进行数据请求,而缓存策略的使用就是为了改善客户端的呈现时间,降低服务端的负担。对于HTTP的缓存机制来说,策略体现在HTTP的头部信息的字段上,而这些策略根据是否需要重新向服务器端发起请求可以分为强缓存和协商缓存两大类。强缓存...

2019-03-20 16:37:07 237

转载 块级格式化上下文BFC

什么是BFC在一个Web页面的CSS渲染中,块级格式化上下文(Block Fromatting Context)是按照块级盒子布局的。W3C对BFC的定义如下:浮动元素和绝对定位元素,非块级盒子的块级容器(例如 inline-blocks, table-cells, 和 table-captions),以及overflow值不为“visiable”的块级盒子,都会为他们的内容创建新的B...

2019-03-04 10:25:21 235

原创 获取一段字符串中的最长对称子串

文章目录获取一段字符串中的最长对称子串获取一段字符串中的最长对称子串function getSubStr(str){ let result = '', subStrLen = 2, subArr = [], i=0; //对称子串长度肯定是偶数位 //获取字符串的所有偶数位子串集合,放到数组中 while(i&amp;amp;amp;lt;str.leng...

2019-03-02 23:25:03 1245

原创 数字金额转大写金额

文章目录数字金额转大写金额数字金额转大写金额 function digitToUppercase(num){ let fraction = ['角', '分']; let digit = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖']; let unit = [['元', '万', '亿'],['', '拾',...

2019-02-28 18:44:39 993

原创 将数字每千分位用逗号隔开

一、正则替换function convertNumToThousand(num){ return num.toString().replace(/(\d)(?=(\d{3})+\.)/g,'$1,');}

2019-02-27 14:24:58 2149

原创 JS判断是否是手机端并跳转操作

常用跳转代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2...

2019-02-21 14:49:08 957

转载 网页性能管理详解

你遇到过性能很差的网页吗?这种网页响应非常缓慢,占用大量的CPU和内存,浏览起来常常有卡顿,页面的动画效果也不流畅。你会有什么反应?我猜想,大多数用户会关闭这个页面,改为访问其他网站。作为一个开发者,肯定不愿意看到这种情况,那么怎样才能提高性能呢?本文将详细介绍性能问题的出现原因,以及解决方法。一、网页生成的过程要理解网页性能为什么不好,就要了解网页是怎么生成的。网...

2019-02-15 17:38:58 149

转载 Async/await学习

Async/await写在前面渣渣新人的首篇外文文章翻译!!存在错误可能会很多,如有错误,烦请各位大大指正出来,感谢!本篇为翻译!本篇为翻译!本篇为翻译!原文文章地址:https://javascript.info/async-awaitAsync/await有一种特殊的语法可以更舒适地与promise协同工作,它叫做async/await,它是非常的容易理解和使用。...

2019-02-13 10:34:29 245

转载 HTTP 2.0 协议详解

HTTP 2.0 协议详解一、HTTP 2.0:改进传输性能HTTP 2.0 的主要目标是改进传输性能,实现低延迟和高吞吐量。从另一方面看,HTTP 的高层协议语义并不会因为这次版本升级而受影响。所有HTTP 首部、值,以及它们的使用场景都不会变。现有的任何网站和应用,无需做任何修改都可以在HTTP 2.0 上跑起来。不用为了利用HTTP 2.0 的好处而修改标记。HTTP 服务器...

2019-02-13 09:54:57 2149

转载 vue的双向绑定原理及实现

前言使用vue也好有一段时间了,虽然对其双向绑定原理也有了解个大概,但也没好好探究下其原理实现,所以这次特意花了几晚时间查阅资料和阅读相关源码,自己也实现一个简单版vue的双向绑定版本,先上个成果图来吸引各位:代码:                                                                    效果图: 是不是看起来跟vue的...

2018-11-07 09:34:33 211

转载 GET和POST两种基本请求方法的区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。 你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。 当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你轻...

2018-10-24 11:36:09 171

转载 C——(单向、单向循环、双向、双向循环)链表学习总结

这段时间一边看书一边把链表的知识总结了一下,并且画了示意图来帮助理解。主要是单向链表,单向循环链表,双向链表,双向循环链表四个部分,每个部分都包括了初始化,创建,插入,删除的基本操作,并总结了各个操作的核心代码。抽空可以看看Linux内核自带的链表(list.h)写法,增进学习。以下的链表均是不操作头节点的。一、单向链表1.单向链表:链式的存储结构,在逻辑上是连续的,每次通过一个指针来...

2018-09-13 17:48:26 2384

转载 脱壳破解资源

工欲善其事必先利其器,好的工具在逆向破解工程中起到事半功倍的作用。OllyDbg(OD):http://www.52pojie.cn/thread-350397-1-1.htmlPEID:http://www.52pojie.cn/thread-170387-1-1.htmlExeinfo PE:http://www.52pojie.cn/thread-437586-1-1.html樱花补丁制作...

2018-08-30 15:05:21 3044

原创 用CSS控制文本显示行数

在平时做项目中,经常会碰到这样的需求,文本最多显示几行,其余用省略号...代替下面的less代码即可实现.t-ellipsis(@lines){        overflow:hidden;        text-overflow: ellipsis;        display: box;        display: -webkit-box;        ...

2018-08-16 16:36:55 8912

原创 在Linux系统上安装node

1.下载最新的稳定版node地址:https://nodejs.org/en/download/2.上传至服务器上传到服务器自己的目录中,我这里在/usr下新建了software目录3.解压缩首先用 xz-dnode-v8.11.3-linux-x64.tar.xz 将tar.xz压缩文件转成 node-v8.11.3-linux-x64.tar...

2018-08-15 18:49:01 1428 2

转载 CSS的background简写方式

在CSS2.1里,background属性的简写方式包含五种属性值,从CSS3开始,又增加了3个新的属性值,加起来一共8个。CSS2.1background-color 使用的背景颜色。 background-image 使用的背景图像。 background-repeat 如何重复背景图像。 background-attachment 背景图像是否固定或者随着页面的其余部分滚动。...

2018-07-26 17:14:48 9852 1

转载 axios

一、安装1、 利用npm安装npm install axios --save2、 利用bower安装bower install axios --save3、 直接利用cdn引入&lt;script src="https://unpkg.com/axios/dist/axios.min.js"&gt;&lt;/script&gt;二、例子1、 发送一个GET请求//通过给定的I...

2018-07-26 16:08:19 136

原创 vue + typescript 项目起手式

vue + typescript 新项目起手式我知道你们早就想用上 vue + ts 强类型了还有后续 vue + typescript 进阶篇安装vue-cli安装ts依赖配置 webpack添加 tsconfig.json添加 tslint.json让 ts 识别 .vue改造 .vue文件什么是typescriptTypeScript 是 JavaScript 的强类型版本。然后在编译期去掉...

2018-07-10 16:34:36 1845 1

转载 Express搭建NodeJS项目

1.安装Node.js;2.安装npm;3.安装Express;在本例中默认全局安装express 安装express生成器 如果没有安装express-generator或安装路径不对,会报以下错误 查看是否安装成功,随便输的一个命令 创建项目文件夹(此处安装了ejs模板,默认安装模板Jade), 在命令行输入cd myblog &amp;&amp; npm install,等待安装,安装完成后...

2018-04-27 10:43:37 321

转载 Webpack入门

写在前面的话阅读本文之前,先看下面这个webpack的配置文件,如果每一项你都懂,那本文能带给你的收获也许就比较有限,你可以快速浏览或直接跳过;如果你和十天前的我一样,对很多选项存在着疑惑,那花一段时间慢慢阅读本文,你的疑惑一定一个一个都会消失;如果你以前没怎么接触过Webpack,而你又你对webpack感兴趣,那么动手跟着本文中那个贯穿始终的例子写一次,写完以后你会发现你已明明白白的走进了We...

2018-04-25 10:48:23 182

转载 SmartGit(试用期30后),个人继续使用的方法。

在我们做项目的过程中,我们会用到SmartGit这个软件来将本地的MAVEN项目push到国内的码云(https://git.oschina.net)或者是国外的github网站进行项目的管理,这个时候需要用到Smartgit。但是SmartGit是收费的,可以30天的试用期,30天试用期过后,smartgit 需要输入序列号解决办法,可以通过下面的小方法来获取永久的使用,但是这个仅供个人的试用,...

2018-03-29 09:46:34 1194

转载 在github上创建个人项目的在线演示demo

前言Github作为目前优秀的同性交友平台,其上维护了众多优秀的开源项目。目前Github上关于前端的项目也是数不胜数,Vue、React、Angular等等。自己也是通过官方文档+github的方式来学习一些新的技术和框架。在github上搜索相关项目时会发现,有的项目不光写了一手好文档并且还给出了项目的在线运行Demo。事实胜于雄辩,一个在线演示可能给项目带来更好的印象分。如何在git

2018-01-08 16:29:10 2327

原创 用github搭建免费无限流量的blog

用github搭建免费无限流量的blog

2017-12-13 17:08:20 713

转载 JavaScript深入系列15篇正式完结!

JavaScript深入系列15篇正式完结!

2017-10-26 16:22:50 316

转载 JavaScript专题系列20篇正式完结!

JavaScript专题系列20篇正式完结!

2017-10-26 16:21:09 350

AirSyncDebugger2.3.0.apk

开发微信接入蓝牙时,提前用该app检测一下设备是否支持微信蓝牙接入,改安装包只支持Android系统手机安装使用

2017-09-27

IOS 10.3 真机调试包 iOS10.3配置包

手机升级10.3系统没法用xcode真机调试项目,需更新这个包

2017-08-29

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

TA关注的人

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