前端杂货铺上新

时间:2022-07-25
本文章向大家介绍前端杂货铺上新,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

零食

如何手动触发滚动事件

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

苹果手机,待补充