CodingWithAlice

我的一方小天地,如果对你有帮助,那真的太好了

Uglify - 代码压缩原理

Uglify - 代码压缩原理 参考文章:[从一个误写的逗号谈开去——JS代码是如何被压缩的](https://www.h5w3.com/19480.html) 核心要点记录: 代码压缩原理 示例: 原始代码 code:var a;var x = { b: 123 };a = 123,delete x; 压缩后 code:var a,x={b:123};a=123,del...

Tree-shaking原理

Tree-shaking原理 参考文章:Tree-Shaking性能优化实践 - 原理篇 核心要点记录: 什么是 Tree-shaking 虽然依赖了某个模块,但其实只使用其中的某些功能。通过 tree-shaking,将没有使用的模块摇掉,这样来达到 删除无用(没有用到的)js代码 的目的 Tree-shaking 的前提条件 ...

大量图片加载优化

大量图片加载优化 参考文章:网页图片加载优化方案 核心要点记录: 问题 1、并发数量限制带来的 排队时间:浏览器对于同一个域名,最多支持 6 个请求的并发(HTTP/1.1限制),其他的请求将会推入到队列中等待或者停滞不前,直到六个请求之一完成后,队列中新的请求才会发出 2、某些图片 体积大,下载慢 解决方案 1、针对 非首屏视口 需要的资源 延迟加载; 2、域名切...

防抖节流

防抖节流 防抖、节流 这个写的很好,平时键盘抬起就会搜索,防抖后,间隔一段时间不输入才会搜索,节流后,可以做到不管是否停止打字,间隔一段时间都会搜索。 还参考了另一篇博文:JavaScript专题之跟着underscore学防抖 总结 - 记住例子: 函数防抖 - 类似法师技能读条,还没读完条再按技能,会重新读条 防抖的原理就是:你尽管...

bind、apply/call三者异同+apply/call实现bind

bind、apply/call三者异同+apply/call实现bind 共同点 改变函数执行时的上下文 this 第一个参数 如果不传,则默认为全局对象 window 区别 apply/call 立即执行 ;bind 方法的返回值是函数,需要 再次调用,才会执行 第二个参数:call - 接收任意个参数...

怎么判断数组类型?4种方法

怎么判断数组类型?4种方法 Array.isArray,instanceof,constructor,Object.prototype.toString.call(),typeof ① Array.isArray方法【最靠谱】 MDN:它不检查值的原型链,也不依赖于它所附加的 Array 构造函数。 对于使用数组字面量语法或 Array 构造函数创建的任何值,它都会返回 tru...

数组扁平化(拍平数组)

数组扁平化(拍平数组) 参考文章:数组拍平连环问 - 只研究到第二问 reduce,没有再深入,一共七问 题目: 如何实现 flat 方法?多维数组=>一维数组 解答: 方法一: 直接调用 Array 的 flat 方法 - arr = arrays.flat(Infinity); 作用是将嵌套的数组“拉平”,变成一维的数组。返回一个新数组,对原数据...

204. 计数质数

204. 计数质数 题目: 统计所有小于非负整数 n 的质数的数量。 解答: 方法一:暴力遍历 - 超时 时间复杂度:O(n*sqrt(n)),空间复杂度:O(1) var countPrimes = function (n) { let times = 0; if (n < 2) { return 0 ...

9. 回文数

9. 回文数 题目: 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。 进阶:你能不将整数转为字符串来解决这个问题吗? 解答: 方法一:转换成字符串处理 时间复杂度:O(n),空间复杂度:xx ...

70. 爬楼梯

70. 爬楼梯 题目: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 解答: 方法一:自己想的 时间复杂度:O(n),空间复杂度:xx 主要逻辑:以 2 的个数作为概率计算的循环,引用了阶乘处理方法 参考函数如右概率计算公式 var climbStair...