前端杂货铺上新

零食

如何手动触发滚动事件

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 机器(应该安卓的都是这样的) 设置——应用管理——微信——清除数据——清除缓存

苹果手机,待补充

关于

前端大杂货铺,主要聊聊前端技术、偶尔谈谈电影、读书、旅行以及一些感悟

欢迎大家来我杂货铺逛逛,不买东西都行,我们就聊聊天,谈谈心~

转载于:https://juejin.im/post/5d5b271df265da03b638ad92

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值