零食
如何手动触发滚动事件
var myEvent = new Event('scroll')window.dispatchEvent(myEvent)复制代码
将一个数组拍平
方法一:
let arrCurrent = [1, [[2], 3, 4], 5]let resultArr = []// 考察 reduce 用法,数组的 concat Array.isArray 方法,以及递归方法function flatten(arr) { return arr.reduce((lastItem, currentItem) => { return lastItem.concat(Array.isArray(currentItem)? flatten(currentItem) : currentItem) }, [])}resultArr = flatten(arrCurrent)复制代码
使 a == 1 && a == 2 && a == 3 的值为 true
方法一: 使用隐式类型转换的时候调用 toString 方法的特性
var a = { value: 1, toString: function () { return this.value++ }}a == 1 && a == 2 && a == 3复制代码
方法二: 使用 Object.defineProperty 方法
val = 1Object.defineProperty(window, 'a', { get: function () { return val++ }})a == 1 && a == 2 && a == 3复制代码
git 小技巧
git cherry-pick
将某个分支的某个提交,复制到自己的分支上
MR(merge request) 想让人看,但不想对方合并,标题前缀写上: [WIP] ,注意逗号前面有空格,或 WIP: ,注意逗号前面有空格
酒水
缓存问题
问题描述:
想真机测试一下,在微信中访问,从抓包中没有看到我想看到的几个 js
文件
过程分析:
1、怀疑是缓存原因,导致抓包没有成功
2、先从Chrome 中将整个 HTML 抓取下来(查看源码) 一开始是类似这样去引用 js 文件
<script src="dist/static/1.0.2/js/manifest.ea586de5.js" crossorigin="anonymous"></script>
3、修改 HTML 中的 JavaScript 引用方式
<script src="dist/static/1.0.2/js/manifest.ea586de5.js?v=1" crossorigin="anonymous"></script>
这样浏览器就认为它是不同的文件,从而会更新缓存了
4、将线上的 HTML 文件代理到本地的 HTML (修改过的)、重新抓包
5、可以看到我想看到的几个 JavaScript 文件
6、定位凶手就是缓存
如何清微信缓存
小米6 机器(应该安卓的都是这样的) 设置——应用管理——微信——清除数据——清除缓存
苹果手机,待补充
关于
前端大杂货铺,主要聊聊前端技术、偶尔谈谈电影、读书、旅行以及一些感悟
欢迎大家来我杂货铺逛逛,不买东西都行,我们就聊聊天,谈谈心~