如何手动触发滚动事件
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 = 1
Object.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 机器(应该安卓的都是这样的) 设置——应用管理——微信——清除数据——清除缓存
苹果手机,待补充