自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (1)
  • 收藏
  • 关注

原创 MDN--Web性能

浏览器可以优化渲染流程,所以我们可以尽可能通过 CSS transiton 和 animation 创建动画。

2023-10-19 16:25:08 205

原创 ES6 -- 模块化(CommonJS、AMD、ES Module)

CommonJS以服务端为目标环境,能够一次性把所有模块都加载到内存,而异步模块定义(AMD Asynchronous Module Definition)的模块定义系统则以浏览器为目标执行环境,这需要考虑网络延迟的问题。AMD的一般策略是让模块声明自己的依赖,而运行在浏览器中的模块系统会按需获取依赖,并在依赖加载完成后立即执行依赖它们的模块。AMD模块实现的核心是用函数包装模块定义。这样可以防止声明全局变量,并允许加载器库控制何时加载模块。

2023-10-14 13:26:55 437

原创 微任务创建 -- queueMicrotask()

【代码】微任务创建 -- queueMicrotask()

2023-09-04 18:08:38 807

原创 详解浏览器HTTP强、协商缓存

1. 永远不会改变的内容应该被赋予一个较长的 max-age,方法是使用缓存破坏——也就是说,在请求 URL 中包含版本号、哈希值等。因此,如果多个相同的请求同时到达共享缓存,中间缓存将代表自己将单个请求转发到源,然后源就可以将结果重用于所有客户端。缓存的默认行为(即对于没有 Cache-Control 的响应) 不是简单的“不缓存”,而是根据所谓的“启发式缓存”进行隐式缓存。- 缓存主要资源很困难,因为仅使用 HTTP 缓存规范中的标准指令,在服务端上更新内容时无法主动删除缓存内容。

2023-09-04 17:43:30 584

原创 从浏览器多进程角度解析输入url到浏览器渲染中间后发生了什么

【代码】从浏览器多进程角度解析输入url到浏览器渲染中间后发生了什么。

2023-09-04 17:42:26 72

原创 JS设计模式的应用场景

JS设计模式的实现已经有很多文章了,但是它们的具体适用场景总会一下子说不上来,本文就简单归纳一下部分设计模式的应用场景。参考书籍:JavaScript 设计模式与开发实践(曾探)

2023-08-15 22:09:41 201

原创 记录文档阅读位置自动滚动

使用 scrollIntoView实现自动滚动到目标元素,实现文档阅读位置记忆与自动定位

2023-08-07 00:34:41 119

原创 Promise.reslove().then中return值对.then执行顺序的影响

Promise.reslove().then()中return的值对此Promise执行顺序的影响原因

2023-08-02 01:09:28 522

原创 lis 算法:返回数组的最长递增子序列的idx

【代码】lis 算法:返回数组的最长递增子序列的idx。

2023-07-21 19:54:35 52

原创 JS继承|使用组合继承模式、寄生式组合继承来实现new

组合继承与寄生式组合继承分别是什么以及如何实现

2023-07-21 19:53:58 129

原创 diff 算法--快速diff实现

快速 Diff 算法在实测中性能最优。它借鉴了文本 Diff 中的预处理 思路,先处理新旧两组子节点中相同的前置节点和相同的后置节点。当前置节点和后置节点全部处理完毕后,如果无法简单地通过挂载新 节点或者卸载已经不存在的节点来完成更新,则需要根据节点的索引 关系,构造出一个最长递增子序列。最长递增子序列所指向的节点即 为不需要移动的节点。

2023-07-16 20:56:25 610

原创 diff 算法---双端 diff 实现

双端 Diff 算法指的是,在新旧两组子节点的四个端点之间分别进行比较, 并试图找到可复用的节点。相比简单 Diff 算法,双端 Diff 算法的优势 在于,对于同样的更新场景,执行的 DOM 移动操作次数更少。

2023-07-16 20:34:44 265

原创 requestAnimationFrame性能测试

requestAnimationFrame节流实现

2023-07-11 23:13:27 264

原创 实现chatGpt中的数据依次展示效果(Fetch+nodeJs)

流式数据获取并展示的前后端实现

2023-05-28 23:27:22 1149

原创 5 种JavaScript 中的高级异常处理方法

JavaScript 允许开发人员通过从内置错误对象创建新对象来定义他们的自定义异常。这允许开发人员向最终用户提供更具体和信息更丰富的错误消息。在此示例中,我们创建了一个新对象 CustomException,它扩展了内置的 Error 对象。当我们抛出 CustomException 时,它将包含我们定义的自定义消息。

2023-05-25 17:24:40 70

原创 Diff两个字符串

使用Lcs 算法实现字符串diff展示

2023-05-25 12:52:19 351

原创 简单diff算法

Diff算法part1--简单diff算法

2023-03-23 11:43:04 113

原创 Vue3源码设计与实现--非原始值的响应式方案

Reflect实现响应式,对in、for...in 、delete 操作拦截

2023-03-13 21:59:31 250

原创 Vue3--响应式的设计与实现

小作文,本文为霍春阳的《Vue.js设计与实现》一书的第四章:响应系统的作用与实现 的分享文章。是我在美团实习所做的第一次组间技术分享内容。原写于公司内部文档系统,但发现无法转载,故CV到这里。Map 是一种新的集合类型,为这门语言带来了真正的键/值存储机制。//创建空映射//在创建时初始化实例,可以给 Map 构造函数传入一个可迭代对象,需要包含键/值对数组//嵌套数组初始化映射]);// 3// 使用自定义迭代器初始化映射});// 3。

2023-02-07 21:01:40 827 1

原创 JS实现数学排列组合公式

代码】JS实现数学排列组合公式。

2022-08-05 15:36:54 597

原创 ConfigProvider 修改antd默认样式

ConfigProvider 修改antd默认样式

2022-07-29 00:11:54 956

原创 vue练手项目

刚学vue时做的小项目https://gitee.com/lv-canfa/any-view.git这个项目里面有两个,一个src和一个srctodo,修改名字为src就可以运行本地存储、vuex、消息发布订阅、事件总线、element-ui.....忘记还有啥了。src_todo...

2022-04-11 20:44:23 651 1

原创 redux介绍

redux

2022-04-11 19:42:14 368

原创 Js往对象中添加一个数组对象

往数组allCourse中的对象添加一个新的数组children:let allCourse=[ {courseId: 20, courseName: "数据结构(C语言版)"}, {courseId: 22, courseName: "体验课程(游客)"}, {courseId: 26, courseName: "C程序设计"} ] let data: [ {classId: 32, className: "计科19(0)班"}, {classI

2022-01-22 17:33:34 11282

原创 DOM操作

appendChild()用于在 childNodes 列表末尾添加节点 .如果该节点已存在,则相当于移动节点var lists=document.querySelector('.lists'); var list=document.querySelectorAll('.lists'); var anode=document.querySelector('.anode'); lists.appendChild(anode);lists.insertBef...

2021-11-16 11:09:27 446

原创 数组与对象的部分方法

获取对象的属性:console.log(person["name"]); 中括号法 console.log(person.name); 点方法 创建数组的静态方法:from()和 of()const a1 = [1, 2, 3, 4]; const a2 = Array.from(a1, x => x**2); const a3 = Array.from(a1, function(x) {return x**this.exponent}, {exponent: 2}..

2021-11-16 11:00:45 513

原创 GIT的部分指令:

Git init // 初始化版本库 Git add xxx //添加文件到版本库(只是添加到缓存区),.代表添加文件夹下所有文件 git commit -m "first commit" // 把添加的文件提交到版本库,并填写提交备注 git status 查看当前状态,查看本地分支文件信息 git check out -[file name] 若文件有修改,可以还原到最初状态; 若文件需要更新到服务器上,应该先merge到服务器,再更新到本地 git branch 查看本地所有分支,当前分..

2021-11-16 10:58:03 213

原创 javaScript原型链(__prop__/protopype)

前言在开始讲原型链之前我们需要了解与面向对象有关的知识,而原型链部分也要求对原型链的有一定了解(如提前看过JavaScript高级程序设计[第四版]的原型链部分)。面向对象什么是[面向对象]概念?要明白面向对象,首先要理解什么是面向过程,面向过程是我们一开始接触编程时的编程思路,比如学C语言的时候。面向过程(Procedure Oriented 简称PO :如C语言):从名字可以看出它是注重过程的。当解决一个问题的时候,面向过程会把事情拆分成: 一个个函数和数据(用于方法的参数) 。

2021-11-16 10:46:20 929

原创 练手微信小程序demo(附地址)

git@gitee.com:lv-canfa/anyview-applet.git其中部分截图如下:这个demo的模拟数据全部都是放在全局,实现的功能有增删改查搜索作业,图像视频的发布与预览,题库选题重组新题目与自主命题等等。欢迎拉取点评0.0...

2021-11-09 17:11:36 180

原创 ES6-set集合

1. 声明一个set(set集合具有唯一性,相同会被删去)let s =new Set();//接收一个数组let s2=new Set(['1号','2号','3号','4号','5号','6号','7号','8号']);//set API//元素个数:s.size//添加新元素s.add('10号')//删除元素s.delete('2号')//检测元素s.has('5号')//清空元素s.clear();//可以使用迭代器 for(let v of s2){.

2021-11-09 17:01:05 744

原创 迭代器自定义遍历数据

<script> const moods={ name:'心情', stus:['happy','sad','soso','creazy','down','negative'], stusTwo:['happy','sad','soso','down','negative'], [Symbol.iterator](){ let index = 0; return{ next:()=>{ if..

2021-11-09 16:34:38 601

原创 封装Ajax请求/xhr与promise

// 1. 创建对象 const xhr = new XMLHttpRequest(); // 2. 初始化 xhr.open('GET', 'https://api.apiopen.top/getJoke'); // 3. 发送 xhr.send(); // 4. 绑定事件,处理响应结果 xhr.onreadystatechange = function () { //判断 if (xhr.readyState === 4) { //判断响应状态码.

2021-11-09 12:14:24 612

原创 微信小程序---函数传参与子组件传递数据并影响父组件函数调用

微信小程序无法通过JS函数常见方式在括号内传参:<view bindtap='courseChosen("参数")'></view>会报错:没有此函数在小程序中可以通过data-num="{{index}}"自定义参数名称传递参数:<view bindtap='courseChosen("参数")' data-num="参数"></view>在对应的JS文件中写courseChosen函数输出e:我们可以看到此时e...

2021-10-25 17:02:21 1708

原创 修改input type=“checkBox“ 的原有样式

input type="checkBox" 的原有样式无法直接修改修改思路为:隐藏checkbox,通过label绑定checkbox,给label设置样式vue中:(js就把input的id前的:和label的for前的:去掉然后修改id和for的内容就行)<input:id="todo.id"type="checkBox":checked="todo.done"@change="changeDone(todo.id)"class="checkItem">&...

2021-09-17 22:41:50 1012

原创 微信小程序父组件向子组件传递参数

1. 传递布尔值、字符串接受参数格式:properties: { isCompleted:Boolean, string:String }, 组件:<order-Lef-Rig/> 传递参数要用{{}}把true/false括起来,否则就是传递字符串了<order-Lef-Rig isCompleted="{{true}}" string="字符串"/>2. 传递对象定义一个state下...

2021-09-13 12:50:35 1384

原创 axios在请求头中添加参数

axios.defaults.headers.common["Authorization"]=token;在请求头中添加token到Authorization中;

2021-07-30 21:39:42 1322

原创 最短最快实现gitee上传代码!!!全图不迷路!!

第一步:上gitee然后新建一个仓库输入名称后其它自动生成,添加你的描述后创建​​​​a按照这个步骤:打开vscode进入终端:依次输入前三个,每个指令输入后空格即可,第一步:自动生成一个新的文件夹firstgittee,第二步添加该目录名称至路径,第三步初始化本地仓库将你想要上传的文件直接拉近去新生成的firstgittee(这里我放了一个try01.html)最后添加你的路径然后push提交:这里我没有引用git remote add origi...

2021-07-20 23:19:05 528

原创 JavaScript的事件循环(event loop)

事件循环的执行顺序:1. 先在主线程执行所有的同步任务,形成一个执行栈 2. 在主线程之外会形成一个任务队列用来依次放置异步事件,进行排队 3. 当主线程内的所有任务执行完毕之后就会按顺序读取满足异步条件(比如定时)的任务(事件),使其进入执行栈。直至任务队列和执行栈的代码执行完毕。1. 执行栈在js中,当很多函数被依次调用的时候,因为js是单线程的,同一时间只能执...

2021-07-20 21:59:27 126 1

转载 大神超短代码实现超牛特效

转载一个炫酷的动态网页特效先看看效果:直接上代码:<!doctype html><html><head><meta charset="utf-8"><title>首页</title><style>html,body{ margin:0px; width:100%; height:100%; overflow:hidden; background:#000;}#canvas{ po

2021-07-13 10:48:04 918 2

原创 【连载】JavaScript高级程序设计(红宝书)阅读笔记

async:可选。表示应该立即开始下载脚本,但不能阻止其他页面动作,比如下载资源或等待其他脚本加载。只对外部脚本文件有效。 crossorigin:可选。配置相关请求的CORS(跨源资源共享)设置。默认不使用CORS。crossorigin= "anonymous"配置文件请求不必设置凭据标志。crossorigin="use-credentials"设置凭据标志,意味着出站请求会包含凭据。 defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。在 IE7

2021-07-13 10:43:44 114

大一学校工作室招新考核的一轮demo

大一工作室面试的一轮考核,使用原生JS、css、html、ajax、axios、没有接口,使用的mock模拟数据,登录数据存储在本地存储中

2021-06-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除