- 博客(109)
- 收藏
- 关注
原创 prettier 格式化代码配置
使用的是vs code环境,前提是已经配置好prettier自动化格式,但是使用的格式化方式是prettier自己的,然后需要自定义一些格式化方法,在项目根目录创建 .prettierrc文件,然后里面写自己需要的配置:...
2022-07-13 09:33:48
1102
原创 防抖和节流
//防抖function debounce(fn,delay) { let time= null; // 私有化数据 return function (){ let context = this,args = arguments; if(time) { // 下一次点击的时候获取到上一下的time,也就是保持数据。 clearTimeout(time) // 思考题 这里要不要清空time // .
2022-05-05 14:59:00
147
原创 Webpack构建一个原生Ts多入口项目
第一步,初始化webpacknpm init -y(生成package.json)第二步,下载构建工具npm i -D webpack webpack-cli typescript ts-loader webpack:构建工具webpack webpack-cli:webpack的命令行工具 typescript:ts的编译器 ts-loader:ts加载器,用于在webpack中编译ts文件第三步,创建配置文件:webpack.config
2022-03-09 16:40:19
1340
原创 JavaScript基本数据类型
一、数字(Number)1.包括浮点数和整数什么是浮点数:浮点数就是该数值中必须有一个小数点,并且小数点后面必须至少有一位数字。由于保存浮点数值的内存空间是保存整数值的两倍,所以js会不失时机的把浮点数转换为整数。小数点后面没有数值或者1.0就会被保存成整数。2.特殊的数字类型NaN1、表示不是数字,但是其实它是一个特殊的数字(NaN:Not a Number)2、当运算操作符错误的时候,一般会得到NaN3、NaN具有传染性,即NaN参与任何运算,结果都为NaN4、NaN与任
2022-03-08 12:06:37
437
原创 前端性能监控
市面上已经有很多前端监控系统了,有收费的,有免费的,种类繁多,产品针对方向也不一样,这边给小伙伴们罗列了一些常见的成熟监控系统流量分析的监控有:百度统计、谷歌分析、GrowingIo、友盟错误统计的监控有:sentry、fundebug、frontJs、岳鹰、webfunny当然还有一些前端监控产品:OneApm、听云目前使用过的前端监控工具有:fundebug,可以免费使用一个项目,但是事件数只允许3000以内。frontJs 更是无言可说。所以就想着能不能自己找个现成库搭建一下
2022-03-07 16:00:15
700
原创 mac 安装yarn
三种方法:1.使用mac 脚本安装curl -o- -L https://yarnpkg.com/install.sh | bash 2.使用homebrew安装brew install yarn 3.使用npm安装npm install -g yarn 三种方法,一种失败就直接换其他的。我使用的是第一种成功了,然后使用命令,查看版本,报错:不要慌,继续往下面看, 原因是没有配置path:1. touch ~/.bash_profile .
2022-02-16 17:04:13
5435
原创 h5打开微信小程序
获取 URL Scheme | 微信开放文档微信开发者平台文档https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/url-scheme.html微信官方文档:1. 文档《URL Scheme打开小程序》2. 《获取 access_token》请求地址https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&am
2021-09-14 19:22:07
2066
原创 js常用的一些方法
直接拷贝,不用再写了1.获取当前的日期:getnowstamp() { const d = new Date() return `${d.getFullYear()}-${(d.getMonth() + 1) .toString() .padStart(2, '0')}-${d .getDate() .toString() .padStart(2, '0')} ${d
2021-06-01 10:01:10
143
原创 编码风格
1.禁止使用var,为了防止变量提升,以及声明多个全局变量,建议不再使用var命令,而是使用let命令取代。2.全局常量和线程安全在let和const之间,建议优先使用const,尤其是在全局环境,不应该设置变量,只应设置常量。const优于let有几个原因。一个是const可以提醒阅读程序的人,这个变量不应该改变;另一个是const比较符合函数式编程思想,运算不改变值,只是新建值,而且这样也有利于将来的分布式运算;最后一个原因是 JavaScript 编译器会对const进行优化,所以多使
2021-05-11 14:14:26
109
原创 富客户端和瘦客户端
1.富客户端富客户端确切地应该称为富因特网应用程序(rich internet applications,ria)富客户端技术正在不断地完善中,但并不意味着会取代html。相反它将进一步扩展浏览器功能,使之提供更加高效和友好的用户接口。许多ria都在浏览器中运行,甚至它本身就是html的一部分,所以html将继续保持其原有的角色。另外,由于富客户端技术可以支持运动的图像、视频、音频、双向的数据通信和创建复杂的窗体,它为创建应用程序用户接口提供了一个高效而完善的开发环境ria开发必须具备三个要素:
2021-04-27 17:01:11
873
原创 Vscode设置Eslint插件
1.安装插件vscode2.项目中要使用vscode3.启动Eslint红线报错:ESLint is disabled since its execution has not been approved or denied yet. Use the light bulb menu to open the approval dialog.eslint点击右下角4.就成功全局启动了Eslint5.保存文件自动按照Eslint格式保存...
2021-04-27 16:06:16
478
EvenLoop,js的事件循环机制
JavaScript的事件分两种,宏任务(macro-task)和微任务(micro-task)宏任务:包括整体代码script,setTimeout,setInterval微任务:Promise.then(非new Promise),process.nextTick(node中)事件的执行顺序是先执行宏任务,然后执行微任务,然后任务有同步任务和异步任务,同步任务进入主线程,异步任务进入Event Table并注册函数,异步队列执行完毕后,会把回掉函数放在Event Queue(任务队列)宏任务和微任
2021-04-25 17:30:03
211
原创 hasOwnProperty
Object.prototype.hasOwnProperty()hasOwnProperty()方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键)。const object1 = {};object1.property1 = 42;console.log(object1.hasOwnProperty('property1'));// expected output: trueconsole.log(object1.hasOwnProperty('t.
2021-04-23 16:15:05
96
原创 css的animation
animation:这个也是一个重要的属性,但是不经常用,容易遗忘,记录一下:简写:animtion:animation-name,animation-duration,animation-timing-function,animation-delay,animation-iteration-count,animation-direction1.animation-name:规定需要绑定到选择器的 keyframe 名称2.animation-duration:规定完成动画所花费的时间
2021-04-15 13:43:52
174
原创 前端解决图片404的问题
目前在做信息流列表的时候,需要点击不同的图片跳转不同的地址,主要就是图片404的捕捉和替换备用图片1.目前在用的,使用的是全集的错误捕捉const basesrc = 'http://static.51gzdhh.xyz/2020-05-15/2/23da5ac3420d1f4b87790d0b91c690d1.jpg' window.addEventListener('error', function(e) { if (e.target.tagName === 'IMG
2021-04-07 16:43:41
4086
原创 图片懒加载
图片懒加载的集中实现方式1.基于原生 js 实现图片懒加载首先需要知道几个高度:document.documentElement.clientHeight获取屏幕可视区域的
2021-03-23 14:48:43
162
原创 原生js的触底加载
function getDocumentTop() { var scrollTop = 0, bodyScrollTop = 0, documentScrollTop = 0; if (document.body) { bodyScrollTop = document.body.scrollTop; } if ...
2021-02-20 13:53:18
592
原创 base64实现加密和解密
这个直接上方法://2.加密、解密算法封装:function Base64() { // private property _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; // public method for encoding this.encode = function (input) { var output
2020-12-28 10:55:01
382
原创 一个好用的加载中的样式
主要是记录一下一个小清新的加载样式,方便以后拷贝:<view class="loading-wapper" v-if="!loadedAll && !noListData"> <view class="loading-icon"></view> <text class="loading-txt">加载中</text></view>样式 .loading-icon {
2020-12-18 12:29:44
421
原创 多层解构赋值
一般使用结构赋值的时候,多是服务端返回的数据的时候,一般会包有固定的一层数据,data什么之类的,所有此时使用一个解构赋值,会使得代码看起来略微高雅一点普通的解构赋值let obj = { data: { data: { cites: [1, 2, 3] } } }结构出第一个da
2020-12-16 12:30:40
2615
原创 记录一个广告请求方法,js的byte和string的相互转换
使用场景:就是需要在body前面加上一个 16位的为0的byte数组,然后就一直在纠结,最开始的时候,一直都在想怎么将字符串转换为byte,然后找了各种方法,ArrayBuffer,什么方法都找过了,都是解析失败解决方法:自己写了一个16个字节的二进制0数组,然后转换为字符串,拼接在请求的前面,成功。记录两个方法:function stringToByte(str) { var bytes = new Array(); var len, c; len = str.le
2020-12-11 14:57:00
524
原创 获取这个网页的来源,广告来源获取
需求是:获取到前一个页面的url,跳转到第三方的页面,需要判断流量的来源,必须是直接从浏览器打开的,或者是通过书签过来的判断他的方法是通过document.referrer来获取的,所以目前要做的就是,让他获取不到这个referrer下面的场景无法获得 referrer 信息直接在浏览器中输入地址 这个测试出来的结果的可以的,获取的是空 使用location.reload()刷新(location.href或者location.replace()刷新有信息) 使用刷新的话,或有结...
2020-12-04 19:24:12
690
原创 h5游戏收集
完整的所有的游戏:http://m.wesane.com/1.彩虹屁:http://www.wesane.com/game/260/2.擦一擦:http://www.wesane.com/game/219/3.翻转水瓶:http://www.wesane.com/game/268/4.扔磁铁:http://www.wesane.com/game/270/5.旋转飞刀http://www.wesane.com/game/358/6.保护蛋蛋http://ww
2020-11-26 12:06:33
1319
原创 浏览器缓存
缓存可以分为服务端的缓存和浏览器的缓存,对于前端来说,能控制的就是浏览器的缓存,所以着重讲一下浏览器的缓存。浏览器的缓存策略主要是依靠HTTP Header 来实现的,主要分为两种:强缓存协议缓存强缓存是指在缓存期间,请求不会发送到服务器,浏览器直接返回缓存结果,需要设置 Header:expires Cache-Controlexpires:expires:Wed,10Oct202009:51:00GMTexpires 是 HTTP/1.0 中用于控制网页...
2020-11-24 12:09:10
218
原创 解决h5页面放在app里面,location.replace不能使用的解决方案
现在的需求是,app里面嵌套的是同一个页面,然后需要根据不同的地区展示其他的页面,直接是通过 locaion.replace() 跳转不同的页面,然后很简单的就实现了但是现在的问题就是 有些app里面不支持replace的方法,虽然可以跳转,但是没有覆盖上一个页面,导致返回的时候还是返回到上一个页面,然后继续跳转倒要跳转的页面,用户体验极差。首先是第一种解决方案:在跳转的时候往本地缓存一个标识符:(nowtime是每一次进入当前页面url后面带的时间戳,currenDate是当前日期)se.
2020-11-18 15:10:14
6917
3
原创 js的导入导出总结import和require区别
导出===es5:module exports = { a:a, b,b}es6:export default { a:a, b:b}导入===es5export default 和 export 区别1 、export与export default均可用于导出常量、函数、文件、模块等2、你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用3、在一个文件或模块中,export.
2020-11-17 19:38:12
1515
原创 获取浏览器的唯一指纹
这个也是使用的别人的插件:Fingerprint2代码如下:<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UTF-8"> <title>Fingerprint2 TEST</title> <style> body { color: #555; }
2020-11-17 17:13:39
2052
原创 前端js实现md5加密
这里主要是使用插件,记录一下:引入:<scriptsrc="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.js"></script>然后使用:md5('101151123412347tJsupCChsVpRHz4PxxjOtMuAeigUn47')返回值就是加密的32位小写的sign...
2020-11-17 17:10:02
3433
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人