Js/Ts__开发之道
文章平均质量分 94
Js/Ts__开发之道
AlexGeek
这个作者很懒,什么都没留下…
展开
-
无头浏览器与Puppeteer中PDF生成应用指南
前言最近在做项目的时候,遇到了在后端生成PDF的需求,而且生成的页面较多,且样式管理相对复杂,还原度要求较高。通过一系列的社区调研后发现,Puppeteer这个Node库可以提供一个相对高级的API,以DevTools协议控制Chrome或者Chromium,其无头模式可以将HTML转为PDF。这是目前Node Server应用中最为主流的解决方案,但是在使用过程中还是会存在很多坑点和注意事项。因此本文围绕无头浏览器、Puppeteer、HTML转PDF等几个方面进行总结和介绍。一、无头浏览器1.原创 2021-08-25 16:41:52 · 4059 阅读 · 2 评论 -
前端跨域jsonp的细节,挡住面试官的连环提问
1.前言在前端面试中,想必每一个人都会被问到跨域相关的问题,背过八股文的小伙伴肯定对跨域的解决对答如流,常见的跨域解决方案在网上有很多整理,但是如果问到实现的细节,你是否能够手写实现或者深入解读呢?其实很多情况下,面试官不仅仅会考察第一层的概念,还会追问第二层、第三层内容,所以对于实现原理的掌握是必要的,今天笔者就整理一下跨域的基本方式,重点介绍jsonp的实现~2.跨域方案常见的跨域解决方案有8种左右,在面试中能答出4-5种就可以了~2.1 如果只是想要实现主域名下的不同子域名的跨域操作,我们原创 2021-04-16 02:46:24 · 2562 阅读 · 0 评论 -
Js构造函数、原型、原型链整理(一文搞懂原型,原型链相关知识)
Js构造函数、原型、原型链整理1. 普通函数、构造函数的区别:(1)名字:构造函数首字母建议大写,普通函数首字母建议小写(2)内容:① 构造函数内部this指向的是构造出来的新对象。普通函数this指向的是window全局对象 ; ②构造函数默认不用return返回值,普通函数一般都有return返回值如果使用了return,那返回值会根据return值的类型而有所不同function Person() { var a; this.name = 'Jerry' this.age = 1原创 2021-04-16 02:00:24 · 270 阅读 · 0 评论 -
Knuth公平洗牌算法(给一个数组随机排序)
洗牌算法的重要原则就是“全面”而且“公平”,并且要使用尽可能小的时间复杂度来实现。什么叫公平呢?一旦你开始思考这个问题,其实答案不难想到。洗牌的结果是所有元素的一个排列。一副牌如果有 n 个元素,最终排列的可能性一共有 n! 个。公平的洗牌算法,应该能等概率地给出这 n! 个结果中的任意一个。如思考到这一点,我们就能设计出一个简单的暴力算法了:对于 n 个元素,生成所有的 n! 个排列,然后,随机抽一个。这个算法绝对是公平的。但问题是,复杂度太高。复杂度是多少呢?O(n!)。因为,n 个元素一共.原创 2020-11-23 21:55:11 · 726 阅读 · 2 评论 -
如何实现js数组的扁平化(数组降维:多维变为一维)
变为1维function flatten(arr) { const result = []; arr.forEach((i) => { if (Array.isArray(i)) result.push(...flatten(i)); else result.push(i); }) return result;}// Usageconst problem = [1, 2, 3, [4, 5, [6, 7], 8, 9]];原创 2020-10-28 12:22:36 · 494 阅读 · 0 评论 -
全面解析JavaScript中对于字符串子串的查询方法
String.prototype.includes()方法String.prototype.indexOf()方法String.prototype.contains()方法底层手写实现原创 2020-10-24 14:32:41 · 2059 阅读 · 0 评论 -
前端性能——资源合并与压缩
一、在http请求的过程中如何提高性能①DNS是否可以通过缓存减少DNS的查询时间②网络请求的过程走最近的网络环境③相同的静态资源是否可以缓存④能否减少http请求的大小⑤能否减少http请求的个数⑥进行服务端渲染而非浏览器渲染深入理解http请求的过程是前端性能优化的核心 二、资源的合并与压缩①减少http请求的数量②减少请求资源的大小 三、压...原创 2019-02-27 13:46:01 · 288 阅读 · 0 评论 -
前端性能——图片相关的优化
一、一张JPG图片的解析过 对于原图片来说要进行颜色空间的转换,将RGB的颜色空间转到其他的颜色空间;然后进行重采样,区分高频和低频的颜色变换,从而进一步进行DCT的过程(即对高频的颜色变化采样过程进行压缩),最后对数据进行量化,再进行encoding编码。总体来说通过图片上方的五个过程就得到了JPG-Compressed Image Date。 JPG格式的图片采...原创 2019-02-27 14:57:05 · 221 阅读 · 0 评论 -
JavaScript中4种常见的内存泄漏及避免方法
垃圾回收算法 常用垃圾回收算法叫做**标记清除 (Mark-and-sweep) **,算法由以下几步组成: 1、垃圾回收器创建了一个“roots”列表。roots 通常是代码中全局变量的引用。JavaScript 中,“window” 对象是一个全局变量,被当作 root 。window 对象总是存在,因此垃圾回收器可以检查它和它的所有子对象是否存在(即不是垃圾); ...原创 2018-11-27 18:53:25 · 952 阅读 · 0 评论 -
VSCode中JS脚本的运行(控制台输出配置)
F5开始调试进入launch.json中进行如下配置{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [...原创 2018-05-12 18:58:32 · 28589 阅读 · 0 评论 -
前端性能——JS的防抖和节流是什么?
数个月之前,在一次前端的性能优化中,接触到了JS中防抖和节流,一开始还不明白他们的应用在哪里,可后来才知道,这是前端中最基础的性能优化,在绑定 scroll 、resize 这类事件时,当它发生时,它被触发的频次非常高,间隔很近。如果事件中涉及到大量的位置计算、DOM 操作、元素重绘等工作且这些工作无法在下一个 scroll 事件触发前完成,就会造成浏览器掉帧。加之用户鼠标滚动往...原创 2020-10-23 17:26:47 · 7024 阅读 · 0 评论