- 博客(287)
- 资源 (5)
- 收藏
- 关注
原创 算法专题汇总(javascript前端版本)
1、快速排序https://blog.youkuaiyun.com/cctvcqupt/article/details/107614866?spm=1001.2014.3001.55012、编译器括号配对https://blog.youkuaiyun.com/cctvcqupt/article/details/107611384?spm=1001.2014.3001.55013、二叉搜索树的生成https://blog.youkuaiyun.com/cctvcqupt/article/details/107608942?s
2021-07-28 16:37:03
170
原创 http缓存
静态资源 → 强缓存 + 文件名 hashHTML → 协商缓存API → 按需策略(no-cache / private)公共数据 → CDN + public 缓存要不要我帮你画一张HTTP 缓存决策流程图(强缓存 → 协商缓存 → 新请求),这样你在面试或工作解释时更直观?
2025-09-01 21:19:26
745
原创 HTTP/2 多路复用
容易出现:前面的响应慢,后面的都得等。于是我们过去会做域名分片、雪碧图、打大包等“曲线救国”。一个域名,只建立 1 个在这一个TCP连接上,并行承载,请求与响应被切成**帧(frame)**交错传输。:多条流并行、互不抢道(在 HTTP 层解决 HOL)。:大幅降低重复 Header 的体积。:可标注哪些流更重要(实际实现已简化,但仍可通过“优先级提示”影响调度)。:浏览器里基本都走 TLS,协商到 h2。注意:HTTP/2 仍然跑在 TCP 上,。
2025-09-01 17:34:45
831
原创 前端异常监控,性能监控,埋点,怎么做的
你想做的是一个(JS 报错、资源加载错误、Promise 未捕获异常)(白屏时间、首屏时间、页面加载时间、TTFB、FCP、LCP、CLS 等指标)(PV/UV、路由变化、用户操作)(采集到的数据怎么上报到监控服务)(监控后台分析、日志存储、异常告警)下面我给你出一份。
2025-08-28 21:21:18
767
原创 非对称加密应用
典型应用:软件分发场景中,签名和验签 (作者发布软件前,用私钥对软件进行签名,发布的开源软件,通常会提供公钥出去,用户可以用公钥对下载得软件进行验签,确保软件没有被更改。或者使用权威CA机构,数字签名证书颁发机构,颁发得证书进行签名,这样,系统会在安装软件时,自动验签):协商对称密钥(如 ECDH), 然后用对称加密高速传输。:证明是某人发的、内容未改(私钥签名+公钥验签)。再用对称算法(AES/ChaCha20)加大数据。:公钥(公开给任何人)和私钥(自己保管)。→ 任何人用 A 的。
2025-08-28 14:05:32
280
原创 20250826--inter
2、怎么避免跨站脚本攻击,包括还有其他的一些web安全,怎么做的。3、前端报错的监控,页面加载时间等监控,怎么做的,做了哪些。5、http 和 https 的区别。6、页面性能优化,加载速度等。4、vue的响应式原理。1、非对称加密的应用。
2025-08-27 11:24:34
212
原创 React 的 Fiber 架构,是如何将 Diff 分片执行的?
Fiber 是 React 内部的一种数据结构,可以看作是对虚拟 DOM 树的重构。
2025-03-03 20:11:35
998
原创 vue 和 react 底层采用的 diff 算法的区别
Vue 3 和 React 在底层 Diff 算法上的实现确实有一些区别,主要体现在设计理念、性能优化策略以及具体实现方式上。
2025-03-03 20:09:25
1134
原创 函数式编程
柯里化函数:函数元降维技术,柯里化函数帮助我们把一个多元函数变成一个不完全调用,把函数调用变成延迟的偏函数(不完全调用函数)调用。偏函数:所谓偏函数,就是以原函数为基础,将某个位置上的参数固定住,后续参数重新扩展传递给原函数,对外则是生成一个新函数。3、函数式编程,是声明式的编程范式(与之对应的是命令式),逻辑清晰,提高代码可读性。2、纯函数的使用,不与全局状态发生交互,具有独立稳定性,提高代码的可维护性。1、将函数视为积木,通过函数来提高代码的模块化和可重用性。柯里化(代码模块化,提高复用性)
2023-01-12 00:06:31
309
原创 hMailServer搭建邮件服务器,用自己的域名邮箱,酷一些吧
需要用到的安装包资源下载,特意设置了0积分免费下载,贡献给各位,请点赞吧配置DKIM需要的(含OpenSSL、VC++2008和相关文件)-WindowsServer文档类资源-优快云下载hMailServer安装包-WindowsServer文档类资源-优快云下载下面是安装文档,详细操作步骤比较简单:xhMailServer邮件服务下载安装详细步骤、汉化、配置(内含解决.NET Framework和libmysql.dll32位库的问题)_程序员老油条的博客-优快云博
2022-05-02 23:00:32
908
原创 rem和vw,vh 移动端自适应
rem布局的本质是基于宽度的等比缩放rem单位都是相对于根元素html的font-size来决定大小的,根元素的font-size相当于提供了一个基准,当页面的size发生变化时,只需要改变font-size的值,那么以rem为固定单位的元素的大小也会发生响应的变化。 因此,如果通过rem来实现响应式的布局,只需要根据视图容器的大小,动态的改变font-size即可。function refreshRem() { var docEl = doc.documentElement;
2022-04-25 23:33:50
819
原创 事件循环 EventLoop
1、setTimeout(fn, 0)在下一轮“事件循环”开始时执行2、立即resolve()的 Promise 对象,是在本轮“事件循环”(event loop)的结束时执行setTimeout(function () { console.log('three');}, 0); Promise.resolve().then(function () { console.log('two');}); console.log('one'); // one// two// t
2022-04-15 14:15:53
207
原创 Generator生成器 和 Iterator迭代器
generator - 廖雪峰的官方网站IteratorIterator是一种机制,也可以说是一种接口,它为不同的数据结构提供了统一的访问机制。任何数据结构只要配置了 Iterator 接口,就可以完成遍历操作for...of循环的背后调用的正是iteration,数组对象上有iteration属性,数组是一个可迭代对象,因此数组可以被for...of遍历一个数据结构只要部署了Symbol.iterator属性,就被视为具有 iterator 接口,这个接口就可以被for...of循环消
2022-03-04 19:08:14
535
原创 Symbol
Symbol - JavaScript | MDN2.3 ES6 Symbol | 菜鸟教程每个从Symbol()返回的symbol值都是唯一的。一个symbol值能作为对象属性的标识符;这是该数据类型仅有的目的。最大的用法是用来定义对象的唯一属性名由于每一个 Symbol 的值都是不相等的,所以 Symbol 作为对象的属性名,可以保证属性不重名。...
2022-03-03 21:17:13
408
原创 Vue2 的数据响应式缺陷
const vm = new Vue({ el:'#app', data:{ message:'aaaaaa', user:{ name:'zhang-san' }, list:['aaaa','bbbb','cc...
2022-03-03 19:16:04
1110
原创 Vue生命周期
beforCreate 初始化事件和生命周期created 初始化注入和响应式beforMount 把模板编译为render函数mounted 挂载DOMbeforUpdate 数据变化触发更新updatedbeforDestory 移除事件监听,watchers,和子组件destoryedactivated 组件激活deactivated 组件失活...
2022-02-23 19:54:41
353
原创 $attrs 和 $listeners
$attrs--继承所有的父组件属性(除了prop传递的属性、class 和 style )$listeners--属性,它是一个对象,里面包含了作用在这个组件上的所有监听器,你就可以配合v-on="$listeners"将所有的事件监听器指向这个组件的某个特定的子元素。1、页面中引用Parent组件<template> <div class="x-page"> <Parent address="上海浦东" name="张..
2022-02-23 16:26:55
798
原创 怎么理解vue的单向数据流和v-model双向绑定
Vue 的单向数据流:指数据一般从父组件传到子组件,子组件没有权利直接修改父组件传来的数据,即子组件从 props 中直接获取的数据。子组件使用 $emit 发出一个事件,让父组件接收去修改这个值。v-model 数据双向绑定,和 单向数据流是两个概念。v-model 只是一个语法糖,等同于<input v-model=“phoneInfo.phone”/><input :value="PhoneInfo.phone" @input="val => { Pho
2022-02-22 15:51:00
787
原创 微前端-微应用
现在有哪些成熟的微前端框架? - 知乎介绍 - qiankunsingle-spa | single-spa为什么要用微前端?拆分巨型应用,使应用方便迭代更新兼容历史应用,实现增量开发特点:独立部署 增量迁移 团队自治 松耦合代码优点:通过路由进行跨应用程序通信 解决了大型项目如何迭代的问题 解决了多团队技术栈不同的问题,实现react和Vue等框架整合实现方式:NPM式:子工程以NPM包的形式发布源码;打包构建发布还是由基座工程管理,打包时集成。
2022-02-22 11:07:07
509
原创 webpack 与 vite 对比
webpack vite 打包原理 把代码打包为立即执行函数,这个转换封装逻辑,代码量越大,打包时间越长 把模块区分为 依赖和源码,用 go写的 esbuild 去预构建 这些依赖,源码部分利用浏览器原生ESM的方式去提供出去。(浏览器请求源码时,vite进行了转换) 热更新 先编译打包,然后更新模块 不需要编译打包 生产环境 仍然需要打包,因为模块嵌套导入会导致网络开销。 打包之后可以进行 tree-shaking / 懒...
2022-02-21 16:33:47
683
原创 ESM(ESModule)和CJS(CommonJS)的区别
ES Module Common JS 输出值的引用 输出值的拷贝(浅拷贝) 编译时,输出接口 运行时加载 import和export这些关键字是在编译阶段就做了模块解析 模块解析发生在执行阶段,因为require和module本质上就是个函数或者对象,只有在执行阶段运行时,这些函数或者对象才会被实例化。因此被称为运行时加载 ...
2022-02-16 17:27:32
1189
原创 jwt ,session 原理, jwt 鉴权的区别
Session流程:1、登录2、服务端产生session并保存在内存中,并向客户端写入sessionId3、客户端请求,带上cookie中的sessionId4、客户端根据sessionId 去验证身份JWT流程:1、登录2、服务端根据用户信息,加密生成token,并返回给客户端3、客户端请求header里面带上token4、服务端根据带上来的token,用私钥解密,得到用户信息,验证身份区别:session机制是把一把钥匙保存在客户端,请求的时候
2022-02-14 15:53:00
2299
原创 Vue和React的比较
谁能大致说下vue和react的最大区别之处? - 知乎首先找到 Vue 和 React 的共性,它们被用于解决什么问题, 然后再挖掘各自独特的个性、设计原理以及未来…https://www.zhihu.com/question/309891718/answer/2282544794共同点Vue和React存在着很多的共同点:-数据驱动视图-组件化-都使用 Virtual DOM不同点Vue和React两者虽然都是用于构建用户界面的框架,但是也有很大的差异,首..
2022-02-11 18:57:09
2633
原创 Vue3和Vue2相比,新特性
参考官方文档:介绍 | Vue.jsVue.js - The 渐进式 JavaScript 框架https://v3.cn.vuejs.org/guide/migration/introduction.html#%E5%80%BC%E5%BE%97%E6%B3%A8%E6%84%8F%E7%9A%84%E6%96%B0%E7%89%B9%E6%80%A7
2022-01-25 16:08:08
912
原创 react native 一套代码开发多个应用区分不同渠道
Android多渠道productFlavors同时开发两个类似的app - 简书前言 最近有个需求,老板让开发一个新的app,新的app上的功能和老的app基本上完全一致,差异化的地方很少,那按照惯性思维,复制出一个老的app,然后改改色值,icon,s...https://www.jianshu.com/p/9d3dfdc5256cConfigure multiple flavor/schema for React Native Appshttps://blog.logicwind.com/ad..
2022-01-14 14:19:47
2371
原创 apk再签名,认领应用,签名命令
jarsigner -verbose -keystore 密钥库位置 -signedjar 签名后的apk 签名前的apk 别名
2021-10-28 15:30:56
153
原创 算法:零钱兑换
力扣https://leetcode-cn.com/problems/coin-change/给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回-1 。你可以认为每种硬币的数量是无限的。思路:动态规划求解/** * @param {number[]} coins 面额数组 [1,2,5,7] * @param {number}...
2021-09-29 11:04:28
289
原创 环形链表 II
力扣https://leetcode-cn.com/problems/linked-list-cycle-ii/给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。/** * Definition for singly...
2021-09-28 14:25:46
106
原创 删除排序链表中的重复元素 II
力扣https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii/存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中没有重复出现的数字。返回同样按升序排列的结果链表。var deleteDuplicates = function(head) { //定义一个虚拟节点 let dummyHead=new ListN...
2021-09-28 11:25:08
130
原创 验证二叉搜索树
力扣https://leetcode-cn.com/problems/validate-binary-search-tree/给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。思路:充分利用二叉搜索树各个节点的大小关系进行递归/** * Definition for a binary tree node. *
2021-09-23 11:48:19
128
原创 二叉树的中序遍历
力扣https://leetcode-cn.com/problems/binary-tree-inorder-traversal/给定一个二叉树的根节点root,返回它的中序遍历。/** * @param {TreeNode} root * @return {number[]} */ var inorderTraversal = function(root) { if(!root){ return [] } let res =[]...
2021-09-18 18:17:48
126
原创 最大正方形
力扣https://leetcode-cn.com/problems/maximal-square/在一个由'0'和'1'组成的二维矩阵内,找到只包含'1'的最大正方形,并返回其面积。//可以使用动态规划降低时间复杂度。我们用dp(i,j)表示以(i,j)为右下角,//且只包含1的正方形的边长最大值。//如果我们能计算出所有dp(i,j)的值,//那么其中的最大值即为矩阵中只包含1的正方形的边长最大值,其平方即为最大正方形的面积。...
2021-09-18 17:35:26
122
原创 算法:路径总和 II
力扣https://leetcode-cn.com/problems/path-sum-ii/给你二叉树的根节点root和一个整数目标和targetSum,找出所有从根节点到叶子节点路径总和等于给定目标和的路径。var pathSum = function(root, targetSum) { let result=[] dfs(root,targetSum,[]) function dfs(root,targetSum,path){ ...
2021-09-17 12:04:36
230
原创 算法:路径总和
力扣https://leetcode-cn.com/problems/path-sum/给你二叉树的根节点root 和一个表示目标和的整数targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和targetSum 。var hasPathSum = function(root, targetSum) { if(!root){ return false } let nodeList=[],valueLis...
2021-09-16 20:41:57
182
原创 x 的平方根
力扣https://leetcode-cn.com/problems/sqrtx/给你一个非负整数x,计算并返回x的平方根。由于返回类型是整数,结果只保留整数部分,小数部分将被舍去 。//二分法求 平方根var mySqrt = function(x) { let n =Math.ceil( x/2) if(n===1) return n let start=0,end=n while(start<=end){ ...
2021-09-16 17:00:36
111
原创 从前序与中序遍历序列构造二叉树
力扣https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/给定一棵树的前序遍历preorder与中序遍历inorder。请构造二叉树并返回其根节点。
2021-09-16 11:43:01
133
Xamarin Android Circle ImageView 圆形图片实现
2016-08-24
QQ影音遥控器(windows phone)
2013-03-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅